以下程序段运行后变量a的值为()。
int x=6,y=5;
int a;
a=(--x==y++)?x:y+1;
A.0 B.1 C.6 D.5
首先计算 --x 和 y++:
--x
y++
--x 表示先将 x 减 1,然后使用减后的值。因此,x 变为 5。
x
y++ 表示先使用 y 的当前值,然后再将 y 增加 1。所以 y 在比较前保持为 5。
y
现在比较 --x 和 y++ 的结果:
--x 现在是 5
y++ 仍然是 5
比较 5 == 5 结果为 true。
5 == 5
true
接下来,根据三元运算符的结果,由于条件为真,我们选择左边的表达式 x(而不是 y + 1),即 x 的当前值。此时 x 是 5。
y + 1
a=(--x==y++)?x:y+1
a=(5==5++)?5:6+1
19568276867 回复 zzw1803472614: 你这个是对的,
a=(--x==y++)?x:y+1;等价于
a=(--x==y++)?x:(y+1);而不等于
a=((--x==y++)?x:y)+1;
+的优先级高于:后执行
求大佬解析
李璞 回复 李璞: +的优先级大于:
蹲一个大佬
D
用户登录可进行刷题及查看答案
登录后提交答案