C语言中a=1,a=a+++1,a+++1这两个有什么区别,前者值是3,后者是2

如题所述

前者,a=a+++1被编译器解释为:
a=a+1;//a=1+1=2
a++;//a=2+1=3
后者,a+++1被编译器解释为:
a+1;//虽然做了1+1=2运算,但没有赋给a,a仍为1
a=a+1;//a=1+1=2
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-30
a=a+++1:先a++,a变为2 (即这个a++完了以后,a已经变成了2),然后开始2+1,然后再将2+1赋给a;
而a+++1:则是先a++,即a变成了2,然后加1,因为加1后并没有赋值给回a,所以a还是2

a++其实差不多是a=a+1的缩写,这样的a自增会赋值给回自己本回答被网友采纳
第2个回答  2011-12-30
a=1;//初始值 a=1
---------------------------------
1、a=a+++1; //a=(a++)+1----->输出 a=3。
2、a+++1; //a++, ----->输出 a=2。

1、2条件的初始a都是1.
LZ满意吧?
第3个回答  2018-07-26

事实证明。。如果a都等于1的情况下。都是2,

如果顺序执行,那么前面是2,后面是3

顺序大概是a=1+1,此时a被使用,所以a++此时a=2,但是1+1又给a赋值2,所以a=2;

++先执行是因为优先级大于=,作者题目都是错的,然而底下一堆在为了错的答案找解释,自己试试就知道了

第4个回答  2011-12-30
a+++1这个不符合语法吧?没写完?
相似回答