int x,y,z x=y=1 z=x++,y++,++y printf x,y,z

如题所述

x = 2; x = 1 ,x++ -->自加1 ,所以为2

y = 3; y = 1 , y++和++y都有自加1,所以为3

z = 1; z = x++ ,因为x++是先赋值在自加1,所以z = x++--->z = 1 , 然后再x= x+1 = 2
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-05-30
x=2 y=3 z=1
z=x++,y++,++y;
先++y再y++得y=3
z=x++先把x=1赋予z,再x++,因为x++是先用后加追问

int y=3,z=1;
printf("%d %d\n",y++,z+2);
Y为什么不是等于3

本回答被提问者和网友采纳
第2个回答  2016-05-30
for循环条件中,中间的一个表示循环的条件,你这个循环的条件是xy则停止循环,根据你给的值,这个循环一次都没进行,所以z++无效,所以z的值就是1
第3个回答  2016-05-30
x=2;z=1;
y=3;追问

解答一下啊 X为什么是2

追答

x=y=1

z=x++ ,先取x的值1 赋给 z , 然后再执行 x+1 =2

y++ , 执行 y+1 =2

++y 执行 y +1 =3

"z=x++,y++,++y" 这个按逗号运算符算的话 , z等于最后一个表达式的值, 那就是3

追问

能不能给解释一下 为什么Z的赋值不是 X++ 而是X

追答

X++ 表达式 , 是先取值,在执行加1

++X 是 先加1,在取值

追问

inta=1,b;
b=a+1;
printf("%d",b++);
这个的b就应该是2 咯 如果是++b 那么就应该是3 把?

追答

是的