int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是?

 我来答
iahner
推荐于2018-02-28 · TA获得超过156个赞
知道答主
回答量:99
采纳率:0%
帮助的人:53.8万
展开全部
【分析】
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功底啊
百度网友f170b16
2016-12-21 · TA获得超过1万个赞
知道大有可为答主
回答量:2271
采纳率:94%
帮助的人:596万
展开全部

首先要明白 ? : 运算符的意思

A?B:C,是这么执行的:判断A是真是假,如果A是真,则执行并返回B,如果A是假,则执行并返回C。

int x=1,y=2,z=3;
z+=x>y?++x:++y;  //判断x>y是否成立,显然不成立,返回++y,即3,执行z+=3,就是z=z+3,z值

所以,最后值6。

其中x值1,y值2,z值6。

望采纳~~~

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liufashuai
2011-08-13 · TA获得超过605个赞
知道小有建树答主
回答量:282
采纳率:0%
帮助的人:263万
展开全部
结果是6
因为+=运算符的优先级低于后面的运算,
所以先求后面表达式的值,可得结果为3
接着,z+=3可得
z=6
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
piscesky37
2011-08-13 · TA获得超过337个赞
知道小有建树答主
回答量:568
采纳率:0%
帮助的人:590万
展开全部
值是6
程序先判断想x,y值大小,之后取y值并自加,赋值给z自加
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Garlen_Huang
2011-08-13 · 超过27用户采纳过TA的回答
知道答主
回答量:131
采纳率:0%
帮助的人:67.7万
展开全部
z=6;
表达式值也是6
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式