c语言简单问题6

来源:百度知道 编辑:UC知道 时间:2024/06/04 09:01:48
若有以下程序段,其输出结果是:
int a=0,b=0,c=0;
C=(a-=a-5),(a=b,b+3);
printf("%d,%d,%d\n",a,b,c);

A.0,0,-10
B0,0,5
C-10,3,-10
D3,3,-10

请解析,谢谢!
为什么a没有被赋值呢?
a-=a-5
a应该被赋予正5阿。。。

不好意思,一开始看错,现在修正下答案:

选B;
C=(a-=a-5),(a=b,b+3); 是两句语句,分别从右到左执行
先是C=(a-=a-5),先看a-5,是-5;a-=-5就是5了,所以c=5

第二句中:b+3;不赋值给任何变量,所以b=0;
然后a=b;a也=0;