条件运算符
int x=10,y=9;int,a,b,c;
a=(--x==y++)?--x:++y;
b=x++;
c=y;
请问执行程序段后,a,b,c的值分别是多少,y的值是怎么变化的 执行程序段后:
1. 先执行 --x,x的值变为9;
2. 再执行 y++,y的值变为10;
3. 判断 (--x == y++) 是否为真,即判断 9 == 10 是否为真,结果为假;
4. 执行 ++y,y的值变为11;
5. a的值为 ++y,即11;
6. 执行 x++,x的值变为10;
7. b的值为之前的 x 的值,即9;
8. c的值为当前的 y 的值,即11。
所以,a的值为11,b的值为9,c的值为11。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 int x = 10 , y = 9 ;
int a , b , c ;
x -- ; // x = 9
y ++ ; // y = 10
if(x == y-1) a = x --; // x = 9 , y - 1 = 9 , x == y - 1 条件为真,执行 a = x --,a = 9 , x = 8
else a = y ++ ; // 不执行
b = x ; // b = 8
x ++ ; // x = 9
c = y ; // c = 10 jackz007 发表于 2024-1-1 10:08
感谢,但其实我主要是想弄清楚这一步是怎么运行的 a=(--x==y++)?--x:++y; hanyf 发表于 2024-1-1 10:33
感谢,但其实我主要是想弄清楚这一步是怎么运行的 a=(--x==y++)?--x:++y;
第3-6行就是在分解这个表达式。 jackz007 发表于 2024-1-1 11:02
第3-6行就是在分解这个表达式。
明白了,谢谢
页:
[1]