int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是?
展开全部
【分析】
z+=x>y?++x:++y
该表达式执行分为两个过程:
1).
x>y?++x:++y
这个表达式的运算符为
A?b:c,即根据逻辑表达式A的真假情况返回表达式b或c.
若A为真(即A运算结果非0),则返回表达式c;若为0,则返回表达式c.
因此x>y++x:++y的意思是判断x>y的真假,若为真,则返回表达式++x,若为假,则返回++y.
2).
执行z+=
【执行过程】
表达式z+=x>y?++x:++y等价于z=z+(x>y?++x:++y).变量赋值后即为z=3+(1>2?++1:++2),
1)由于1>2为假(即表达式结果为0),因此返回表达式++y;
2)执行++y.++y是先对y变量执行自加,在返回自加后结果,即为3(即为(x>y?++x:++y)的结果).
3)执行z+=.将(x>y?++x:++y)结果带入,为z+=3
4)返回z为6
.
——————————————————————————————————
楼主,这些都是c的基本运算,要扎实c功底啊
z+=x>y?++x:++y
该表达式执行分为两个过程:
1).
x>y?++x:++y
这个表达式的运算符为
A?b:c,即根据逻辑表达式A的真假情况返回表达式b或c.
若A为真(即A运算结果非0),则返回表达式c;若为0,则返回表达式c.
因此x>y++x:++y的意思是判断x>y的真假,若为真,则返回表达式++x,若为假,则返回++y.
2).
执行z+=
【执行过程】
表达式z+=x>y?++x:++y等价于z=z+(x>y?++x:++y).变量赋值后即为z=3+(1>2?++1:++2),
1)由于1>2为假(即表达式结果为0),因此返回表达式++y;
2)执行++y.++y是先对y变量执行自加,在返回自加后结果,即为3(即为(x>y?++x:++y)的结果).
3)执行z+=.将(x>y?++x:++y)结果带入,为z+=3
4)返回z为6
.
——————————————————————————————————
楼主,这些都是c的基本运算,要扎实c功底啊
展开全部
答案是5.
+=后面是一个三目运算符。
先求?前面的表达式,若表达式的值是0,则取:后面的值,非0取:前面的值,而自加运算符的用法是:
++x:先自增1在使用;
x++:先使用在自增1;
所以x+y?++x:++y的值是2;
z+=2相当于z=z+2=5.
+=后面是一个三目运算符。
先求?前面的表达式,若表达式的值是0,则取:后面的值,非0取:前面的值,而自加运算符的用法是:
++x:先自增1在使用;
x++:先使用在自增1;
所以x+y?++x:++y的值是2;
z+=2相当于z=z+2=5.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
结果是6
因为+=运算符的优先级低于后面的运算,
所以先求后面表达式的值,可得结果为3
接着,z+=3可得
z=6
因为+=运算符的优先级低于后面的运算,
所以先求后面表达式的值,可得结果为3
接着,z+=3可得
z=6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
值是6
程序先判断想x,y值大小,之后取y值并自加,赋值给z自加
程序先判断想x,y值大小,之后取y值并自加,赋值给z自加
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询