关于y++,求详解过程

main()
{ int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果 2,3,1,
为什么y=3?
z=x++,y++,++y;
这个语句是什么意思

我不同意上面几位的说法,,

++Y,和Y++都是Y自加1,所以运行后Y=3

而在z=x++,y++,++y; 这条语句中,=号的运算优先级高于逗号,所以先执行Z=X++,X++表示先使用X,然后再让X自加1,执行之后Z=1而X=2,,,之后再执行y++,++y,这两个都是逗号运算符连起来的,需要全部执行,所以就得到结果 2,3,1,
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-02-23
x=y=1是说x和y的只都为1,下一句y++是Y的值加1就是2了.Y++是Y再加1.但是两者是有区别的:y++是Y加1,但是y++整体值还是1.++Y是Y加1,但是++Y整天也加1,就是2了,不过下面没有用到区分他们的,以后见了可以注意一下.
第2个回答  2009-02-23
main()
{ int x,y,z;
x=y=1; 将y的值赋为1,再把y的值赋给x;此时x是1,y也是1
z=x++,y++,++y; 这里相当于z=x++;y++;++y;我想这样你应该能明白了,这个又相当于z=x;x++;y++;++y;
printf("%d,%d,%d\n",x,y,z);
}
第3个回答  2009-02-23
在执行完y++时 y的值就已经为2,当执行++y时是先将y加上1之后才进行调用,这与y++不同,y++是先调用y之后使y加上1