以下程序的运行结果是 x = y = 1; z = x++, y++, ++y; pri

以下程序的运行结果是
x = y = 1; z = x++, y++, ++y;
printf("%d,%d,%d", x, y, z);

x = y = 1; //赋值y=1,x=1
z = x++, y++, ++y;//这一句逗号表达式可以按下面三句理解(等价):

z = x++, //先把x的值赋给z,即z=1,x再自增1,自增后x=2
y++, //y后自增,自增后y=2
++y; //y先自增,自增后y=3
//需要说明的是单独出现的++y与y++作用是相同的。

printf("%d,%d,%d", x, y, z);//最后打印xyz的值:
2,3,1
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-02-13
重点在于第二句,先赋值
z=x++,
先赋值,z=1
x自加为2
然后两次自加为3
输出也就是
1,2,3
第2个回答  2019-02-13
++i --先自加再赋值
i++ --先赋值再自加
自己算吧