int x=3,y=3,z=1,则printf("%d\n,z+=x<y?x++:y++);的值为多少?

如题所述

由于+=优先级较高所以1+3=4.
4不小于y所以执行y++
3+1=4
结果是4
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-15
y=4追问

y的值为什么等于4,不是为3吗

第2个回答  2011-06-13
4
第3个回答  2011-06-13
4
----------
注意点:
1) x++后缀表达式,值为x,计算后x+1
2) ? : 三目表达式,返回条件对应的值
3) += 表达式,返回+后的值

详解:
z+=x<y?x++:y++;
先算+=右边的
x<y?x++:y++ 三目运算表达式,x<y不成立,表达式的值为:后的 (y++)
而(y++)是后缀表达式,值为y,即3, 表达式计算后才+1
z+=3
表达式等价(z=z+3),z=4,表达式值为4,输出4追问

为什么是求 z 的值,不是输出的结果为 y++,而y的值为3 所以输出的结果为3呀,y的值是在下一步计算的时候才加1的。

追答

输出的结果是(z+=x z+=(y++) --> z+=3 --> z=z+3 --> z=4
这一长串表达式必须是这么计算出最后结果后才返回表达式值的,所以这值是啥!?
4.。
-----------
完毕。。

本回答被提问者采纳

int x=3,y=3,z=1,则printf("%d\\n,z+=x<y?x++:y++);的值为多少?
由于+=优先级较高所以1+3=4.4不小于y所以执行y++ 3+1=4 结果是4

...{ int y=3,x=3,z=1; printf(“%d %d\\n”,(++x,y++),z+2); }...
逗号符,表示对这两个表达式执行逗号运算…(x,y)这个表达式的值为y的值 ++x就是将x的值+1后赋给表达式,y++就是先将y拿去计算,在讲y加1 ,

...int y=3,x=3,z=1; printf("%d %d\\n",(++x,y++),z+2); } 答案为什么...
输出的值分别是(++x,y++)和z+2 (++x,y++)这个是一个逗号表达式,返回值为最右边表达式的值。所以返回的值为y。z+2就是3 所以输出为3 3 这个主要考的是逗号表达式返回值

...int y=3,x=3,z=1; printf("%d%d\\n",(++x,y++),z+2); 为什输出的是...
逗号运算符,只取最后一个参数,(++x,y++)其实就是y++,z+2=3,其中++x的值为4,y++的值为3,x,y的值都为4

...int y=3,x=3,z=1; printf("%d%d\\n",(++x,y++),z+2) }的值。是怎么...
我来给你详细说说:(++x,y++),这是逗号表达式,先执行++x,然后执行y++;结果取逗号后面表达式的值,也就是y++的值。y++的值为3,因为这是后加表达式,如果是前加++y的话,值就是4;z+2的值是1+2=3;所以结果输出是3 3

void main() {int y=3,x=3,z=1; printf(%d %d\\n,(++x
(++x, y++)这整个是一个逗号表达式,逗号表达式的运算规则是从左往右依次计算,并返回最后一个表达式的值,所以返回输出的是y++ 这里++放在了y的后面,所以是先输出y,再进行y=y+1运算,所以最后是输出3 3

...int X=1,y=2,z=3; x+=y+=z; printf("%d",(x<y?X++;y++)) } 输出...
printf("%d",(x<y?X++;y++)) } 这是一个条件表达式,判断x<y的真假,真就取x++,假就取y++ x=1,y=2,z=3 x+=y+=z 是自右运算的,y=y+z=5 此时y=5 x+=y x=x+y=1+5=6 然后判断x<y 很明显x>y 所以条件是假值,取y++ 这里注意一下,要求输出的是y 不是y的值 ...

c语言中,若x=3,y=2,z=1,则表达式z+=(X<Y?x++;y++)的值是
分号打错了,应该是冒号!X<Y ? x++ : y++ 意思是如果x<y,则执行x++,否则执行y++;例子中x>y,所以表达式相当于 z+=y++;y++值为2,所以相当于z+=2 z初值为1,计算后z=3

...int y=3,x=3,z=1; printf("%d%d\\n",(++x,y++),z+2) } 是怎么运算的...
++x,x先加1在运算,y++,y先运算在加1

设int x=1,y=3,z; 执行z=x>y?++x:y++后z的值是?
程序先判断x>y是否成立,显然不成立,那么就返回冒号后面表达式(y++)的值,此表达式的值是先引用再++ 所以最后 z应该等于3

相似回答