a++与++a如何理解,就把这个理解不好,做运算光错,老师批评几次了。给我介绍懂了,另外 有加20分。

比如a=2 a++是等于几 怎么看得 比如是不是 a+1还是怎么的,我老师之前讲什么
a++=a+ +1什么来的,反正记不清楚了,我很多地方处理问题都错在这。

a++ 和 ++a 单独作为一个语句的时候是没有区别的
但是作为语句一部分需要取值的时候就有区别

比如
int a=3, b;
(1) b = a++; //后缀++是先取值再自加,也就是先取到 a 的值,即 3,赋值给b, b=3, 然后 a 再完成自加,a=4; 结果 b =3, a=4
(2) b = ++a; //前缀++是先自加再取值, 也就 a先完成自加 a=4, 然后再取 a的值 赋给 b, b=4, 结果 b=4, a=4

当然还有变态的
a=a++; //当右边表达式中有a自加,并且左边赋给的又是a的情况(可能的变形有 a = b+ a++, 即右边表达式包含了左值的自增自减),这种不用管,因为不同编译器会有不一样的结果,考试肯定也不会出这种题,谁出了去砍死他
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-16
++a,先执行a+1,然后再带入a计算
a++,先带入a计算,然后再执行a+1
例如:
int a=1;
cout<<a++<<endl;
它其实等价于:
cout<<a<<endl; a=a+1;
/**********************************************/
int a=1;
cout<<++a<<endl;
等价于
a=a+1;
cout<<a<<endl;
第2个回答  2011-08-16
a++与++a的差别在于表达式的值,a++的值等于a,只不过执行完此表达式后a才变为加1后的值,++a不仅将a加1,其值也是增加的结果。比如对于a=5,对于
int b = a++; 或
int c = ++a;
两个式子执行后a都为6,但b为5,c为6。
第3个回答  2011-08-16
简单来说就是 先加和后加的问题
a++ 就是后加 t=a++; 这里a先赋值。再++。就是t=1,运算后a=2;
++a 就是先加 t=++a; 这里a先加,再赋值。就是t=2,a也等于2;
第4个回答  2011-08-16
a++ 等同于a=a+1然后把a的值放入表达式中运算。
++a 等同于先把a的值放入表达式中运算,再a=a+1。
第5个回答  2011-08-16
比如a=2,对于a++,a先取值使a=2,然后计算加1,即a++的值为3,最后结果a=2,a++为3;
对于++a,先计算加1,然后把计算结果赋给a,即a=3,++a也为3;最主要的区别是赋值给a的先后顺序不同,但对于表达式a++或++a的值与如何书写无关。
相似回答