非常简单的c语言题目,但是就是逻辑有点搞不懂啊,希望讲解详细点啊

若原a的值为3,b的值为2,则执行a+=b++后,a与b的值为多少?

首先,b++ 的意思是,先使用b的值,然后再进行加1的操作
a+=其实就是 a=a+?

所以呢,a+=b++
可以等效为:a=a+(b++)
a=a+(b)
a=3+(2)
a=5
此时,b的值在 a+=b++ 这个过程中时2,但,这个赋值结束后,b的值就是3

所以,a=5,b=3
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-10
5 3
原式视为:a+=b,b++;
即为a=a+b,b=b+1;
所以,a=3+2=5,b=2+1=3.
第2个回答  2012-04-10
a=5,b=3
原因:a+=b++
a=a+b++意思是先把a+b赋给a然后b再加1
a=a+b=5
b=b+1=3
第3个回答  2012-04-10
这个得看各个运算符的优先级,还有就是后加加的特性。
相当于: a = a+ b; b = b + 1;两条语句。 所以结果就是a = 5; b = 3;
第4个回答  2012-04-10
b++返回b,所以a+=b a= 5 b执行b++以后得到3
第5个回答  2012-04-10
我估计你纠结的是不同版本的C开发平台,执行b++后b的值是否变化。但就VC6.0来说,先计算b++,即b=b+1是对的。建议你可以先看看C语言中各种符号的优先级顺序。这里++的优先级比+、-、= 的高,因此先计算b++,即b=b+1;后计算a=a+b。也就是说b=3,a=6.
相似回答