int x=3,y=2; 则表达式(y++==--x)?y++:x++的值为多少

如题所述

这个表达式会先执行y++==--x,y++==--x的结果为true,执行结束后
y==3
x==2;
接着执行y++,
执行结果y==4;
所以这个表达式的值为3。
再说一下y++==--x:
++(或者--)运算写在变量左边和写在变量右边的值是不一样的,写在左边代表想运算再取值,写在右边表示先取值再运算;
所以
y++表达式的先取值,取值为2,再运算此时y的值变成了3;
--x表达式先运算,x的值变为2,再取值,取值为2
2
==
2
所以表达式y++==--x的结果为true
这个答案是正确的
a逻辑运算符b
?
c:d
是个三元运算
这个表达式的意思是
?前面的
表达式判断真假
?后的表达式以:间隔
表示取值
当?前面的表达式为真,去冒号前c表达式的值
假就取d表达式的值
所以
应该是取y++表达式的值
?前的表达式运算完后
y=3,x=2;
所以
这个表达式取的结果是
3
然后
最终y变量的值是
4
X
变量的值是3
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-21
y++=--x这一句,y是先使用后自增,x是先自减在使用,所以2==2为真,此时,y=3,x=2;
所以表达式的值应该输出y++;还是先使用,后自增,所以输出的结果是3;
最终y的值是4,x是2
希望可以帮助你,谢谢采纳。。。
第2个回答  2019-04-02
这个表达式会先执行y++==--x,y++==--x的结果为true,执行结束后
y==3
x==2;
接着执行y++,
执行结果y==4;
所以这个表达式的值为3。
再说一下y++==--x:
++(或者--)运算写在变量左边和写在变量右边的值是不一样的,写在左边代表想运算再取值,写在右边表示先取值再运算;
所以
y++表达式的先取值,取值为2,再运算此时y的值变成了3;
--x表达式先运算,x的值变为2,再取值,取值为2
2
==
2
所以表达式y++==--x的结果为true
第3个回答  2019-07-08
答案是3.解答如下:
x=3,y=2;
y++式子的值取2,因为y++先取值用而后值再加1,之后y的值为3;
--x
先减一再取值用,此时--x式子的值为2;
所以y++==--x为真,整个选择表达式的值为y++,先取值3,所以整个选择表达式的值为3,而后y再加一。此时y的值为4,因为y++先取y的值再加一。最后的一个x++没有执行,所以x的值还是2.
欢迎批评指正。