1.优先级问题(摘自c++primer)
(1)任何一个逻辑运算符的优先级低于任何一个关系运算符
(2)移位运算符的优先级比算术运算符低,但是比关系运算符高。
2. 后置递增(递减)运算符优先级比解引用运算符优先级高;
int i[10]={0},*p=i;
*p++;//表示*(p++)
3.递增(++)和递减(--)运算符
除非必须,尽量不使用后置版本的递增和递减运算符。由于后置版本需要返回一个未修改前的数据,影响程序性能上。
4.位运算
在进行位运算时,没有规定如何处理符号位,因此尽量不要对有符号类型在进行位运算。
区分:位求反(~),逻辑非(!)
5.sizeof运算结果(摘自c++ primer)
(1)对char或者类型为char的表达式执行sizeof运算,结果为1.
(2)对引用类型执行sizeof返回得到被引用对象占用的空间大小
(3)对指针执行sizeof运算得到指针所占用的空间大小
(4)对解引用指针执行sizeof运算得到指针所指向对象所占空间的大小,指针不需要有效
(5)对数组执行sizeof运算得到整个数组占用空间的大小
(6)对string对象和vector对象执行sizeof运算只返回该类型固定部分的大小,不计算对象中元素占用的空间