c语言:x=y=1;z=x++,y++,++y;计算输出x,y,z的值

我的答案是2,3,2怎么就错了呢,求详解,谢谢
1. X++ → X=X+1=2
2. Y++ → Y=Y+1=2
3. ++Y → Y=2
4. Z=++Y= Y=2
5. Y=Y+1=3

x=1,y=1

z=x++

把x给z,所以z=1,之后x++,所以x=2;

y++

原来y=1,现在变成2

++y

前面y=2,现在变成3

所以,最后:

x=2

y=3

x=1

扩展资料

C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。

当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则就会显得十分重要。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-28
x=1,y=1
z=x++ 把x给z,所以z=1,之后x++,所以x=2;
y++ 原来y=1,现在变成2
++y 前面y=2,现在变成3.
所以,最后:
x=2
y=3,
x=1本回答被提问者和网友采纳
第2个回答  2018-12-05
逗号表达式优先级低于赋值运算符,所以z = x++, y++, ++y;===》(z =x++),(y++),(++y);
应与z = (x++, y++, ++y);区分
第3个回答  2013-03-24
第4步应该错了吧。。。z只执行了z=x++这一步。后面的只是y的自加而已。没有将值付给z。忘采纳
第4个回答  2013-03-24
答案是2,3,1.,首先z=x++,结果是z=x,然后在执行x++,y++,x=y=2,在执行++y,所以最后x=2,y=3,z=1追问

在第三步Y的值都已经是2了,怎么又变成1了呢

追答

你上面那些步骤是不是有错

相似回答