C语言问题: #include <stdio.h> int main() { int a=3,

C语言问题:
#include <stdio.h> int main() { int a=3, b=4, c=5; c=(a+=a-=a),(b=a,c+2); printf("a=%d,b=%d,c=%d",a,b,c); return 0; }
我就是有不明白,a+ = a- = a 这句话怎么理解的?运行结果a.b.c都等0。

a+=b,代表给a赋值为(a+b),-=同理,同时这俩运算符平级。

所以顺序为首先a+=a,此时a=2a;
然后a-=a,此时=0;
然后c=a=0
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-04-22
先把a-a的值赋值给变量a,此时a的值为0,然后再把a的值也就是0加上a的值也就是0的和赋值赋值给a变量,此时变量a的值就是0了追答

然后把a的值赋值给c变量,把a的值赋值给b变量,然后把c的值加2但是没有存放c加2的值,c的值不变

追问

原式a+=a-=a,理解成a+a=a-a=a。
a+和a-其实是a+a和a-a的缩写?
这样理解对吗?

追答

a-=a相当于a=a-a,a+=a相当于a=a+a

追问

谢谢。

本回答被提问者采纳
第2个回答  2016-04-22
c等于a追问

明白。C等a。a等0是为什么呢?

a+=a-=a这句话怎么理解算出a=0的?

相似回答