简单总结下容易忽视的地方和易错点吧
1 常用的位操作符,leecode很多算法题都是靠位运算解决的
2 箭头操作符 ->
等价于(* ). 对指针的成员操作
3 sizeof操作符
- 对 char 类型或值为 char 类型的表达式做 sizeof 操作保证得 1。
- 对引用类型做 sizeof 操作将返回存放此引用类型对象所需的内在空间大小。
- 对指针做 sizeof 操作将返回存放指针所需的内在大小;注意,如果要获取该指针所指向对象的大小,则必须对指针进行引用。
- 对数组做 sizeof 操作等效于将对其元素类型做 sizeof 操作的结果乘上数组元素的个数。
因为 sizeof 返回整个数组在内存中的存储长度,所以用 sizeof 数组的结果除以 sizeof 其元素类型的结果,即可求出数组元素的个数:
// sizeof(ia)/sizeof(*ia) returns the number of elements in ia
int sz = sizeof(ia)/sizeof(*ia);
4 new和delete表达式
new表达式返回指向新创建对象的指针
可以使用直接初始化
int *pi = new int; // pi points to an uninitialized int
int *pi = new int(); // pi points to an int value-initialized to 0