1)C/C++的++和--运算符的作用是递增和递减,都可以作前缀或后缀表达式;
int a = 1,b,c;b=a++;//1
c=++a;//2
1和2的区别在于1中a的值赋给b后,a的值加1,所以b=1;2中a开始是2,a先递增加1然后赋值给c,c=3;最后a=3。
y = (4 + x++) + (6 + x++);
2)这个表达式的结果在不同的系统中运行的结果是不同的,因为C/C++选择何时把++(--)运算符用到变量时是以“;”来确认的。C++不保证是在(4 + x++)后x的值立刻增加1,C++只保证上式结束时x的值增加了两次。
3)和指针运算符*的优先级比较:前缀递增和*运算符的优先级相同,遵循从右到左的结合方式,后缀递增的优先级高于前缀递增,但后缀递增以从左到右的方式进行结合。
double x = *++pt;
pt是指针,上式的意思是先把指针加1即指向下一个元素,然后将指向的元素的值加1。
4)对于用户自定义的类型来说,前缀的运算效率更高。后缀运算的实现需要两步(1)复制对象,得到对象副本(2)对象加1,返回复制的副本
本文出自 “叶” 博客,请务必保留此出处http://fshine.blog.51cto.com/6122608/1582995