简单的C语言程序题,搞不懂哦!!!

来源:百度知道 编辑:UC知道 时间:2024/06/18 09:50:59
main()
{int a=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf("%d,%d,%d,\n",a,b,c);
}
你说结果应该是什么,为什么啊,主要讲a和c的值是怎么来的哦!!!

a==0
b==0
c==5

逗号操作符的优先级是最低的,结合性是从左向右,原逗号表达符可以写成如下形式:

(c=(a-=a-5)),((a=b),b+3);

(a-=a-5)之后,a==5
由于c=(a-=a-5);所以,c==5

然后再计算((a=b),b+3)

(a=b)使a值变为0,b+3不改变b的值,所以此后a==0并且b==0