C语言中: int x,a,b; x=(a=3,b=++a); x为什么等于4

如题所述

(a=3,b=++a)是逗号表达式,计算机会顺序执行其中的语句,整个表达式是最后一个语句的计算结果
先执行a=3;现在变量a的值为3
然后执行a++;由于++出现在变量a前面,所以这个自加运算会在给变量b赋值之前执行完毕
接着执行b=a;则最后一个语句的结果就是b的值
最后执行x=b;所以x的值是4
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-09
逗号表达式,顺序求值,表达式为最后一个表达式的值,即x为b的值,而b的值是++a的值,a是3,前加加就是先加变为4,赋给b,当然是4了,b是4,x就是4
第2个回答  2016-10-09
括号内,从左到右运算 a=3了,,,然后++a是4,再赋给b,,,,最后x=4

~
相似回答