假设有条件 int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是6,为什么是6呢?

帐号已注销
2020-12-08 · TA获得超过77万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:161万
展开全部

先判断后面的条件,因为X大于Y不成立,所以返回++Y也就是3,再加到Z里所以是6。

结果是6

因为+=运算符的优先级低于后面的运算,

所以先求后面表达式的值,可得结果为3

接着,z+=3可得

z=6

扩展资料:

一个表达式的赋值和算符的定义以及数值的定义域是有关联的。

两个表达式若被说是等值的,表示对于自由变量任意的定值,两个表达式都会有相同的输出,即它们代表同一个函数。

一个表达式必须是合式的。亦即,其每个算符都必须有正确的输入数量,在正确的地方。如表达式2+3便是合式的;而表达式*2+则不是合式的,至少不是算术的一般标记方式。

参考资料来源:百度百科-表达式

勤苦又稳固的喜鹊382
推荐于2018-03-13 · TA获得超过252个赞
知道答主
回答量:65
采纳率:0%
帮助的人:70.3万
展开全部
你好 ,比目运算符(?:) 和> 的优先级都比 += 高。
所以上式可以这样看 z = z + (x>y?++x:++y)
z = z + (++y) = 3 + (2+1) = 6
请采纳,有问题可追问。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GTX_ErEn
2011-06-25 · TA获得超过812个赞
知道小有建树答主
回答量:1814
采纳率:0%
帮助的人:879万
展开全部
先判断后面的条件 因为X大于Y不成立 所以返回++Y也就是3 再加到Z里所以是6
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式