main( ) {int x,y,z;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}怎么做

如题所述

如果给了初值 int x=1,y=1,z=1;
z=x++,y++,++y;
在表达式内 x++, x 值不变,出表达式 它增 1
在表达式内 y++, y 值不变,出表达式 它增 1
在表达式内 ++y, y 值 先变,y 从初值1 变成 2。
在表达式内 z = x++, z 得 1
打印时,z 还是 1
x 值 出表达式 它增 1, 打印时 x=2
y 值 出表达式 它增 1,表达式内它已是2,增 1 变 3, 打印时 y=3.
答案 2,3,1
======
附带说明,若
z= (x++,y++,++y);
则 z 得 3。
因为 小括号内 是 逗号表达式. 答案变成 2,3,3
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-15
如果给了初值 int x=1,y=1,z=1;
z=x++,y++,++y;
在表达式内 x++, x 值不变,出表达式 它增 1
在表达式内 y++, y 值不变,出表达式 它增 1
在表达式内 ++y, y 值 先变,y 从初值1 变成 2。
在表达式内 z = x++, z 得 1
打印时,z 还是 1
x 值 出表达式 它增 1, 打印时 x=2
y 值 出表达式 它增 1,表达式内它已是2,增 1 变 3, 打印时 y=3.
答案 2,3,1本回答被提问者采纳
第2个回答  2011-09-13
x ,y z 只是定义,没有赋值··所以答案应该是随机数吧··
第3个回答  2011-09-13
都没有初始值啊!!
z=x++ -> z =x;x=x+1
y++ -> y=y;y=y+1;
++y -> y=y+1;y=y;
第4个回答  2011-09-13
你都不告诉一个值怎么算