若已定义intx,y,z;执行语句x=(x=1,y=z=2,y++,z++);后,x为什么为2

若已定义intx,y,z;执行语句x=(x=1,y=z=2,y++,z++);后,x为什么为2,不是1吗?

x为2,这考查的是一个逗号表达式,结果等于最后一个表达的值,因此,先算括号的,1赋值给x,再算2赋值给z,z再赋值给y,此时y==z==2,所以x==2。最后x,y再分别自加1。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-18
结果其实就是
x=z++
先赋值再自加,结果是2
a=(b,c)这种运算,实际上就是a=c 当然前面的运算也是要算的
就这个题
就是相当于
x=1; y=z=2; y++; x=z++本回答被提问者采纳
相似回答