C语言中 *x > *y ? *y = *x : *x = *y;不能通过编译写成写成 *x >

C语言中*x>*y?*y=*x:*x=*y;不能通过编译写成写成*x>*y?*y=*x:(*x=*y);才能正确执行?为什么?... C语言中 *x > *y ? *y = *x : *x = *y;不能通过编译写成写成 *x > *y ? *y = *x : (*x = *y);才能正确执行?为什么? 展开
 我来答
漠影歌
2015-06-01 · TA获得超过807个赞
知道小有建树答主
回答量:483
采纳率:50%
帮助的人:440万
展开全部
首先,程序是由左向右作兴,在优先级级别中,赋值的优先级很低,在这里 如果写成*x > *y ? *y = *x : *x = *y;的话,他的意思就是(*x > *y ? *y = *x : *x )= *y; 最后不管算出的值是什么,都会执行把y的值赋给他,所以是错的,想要实现你的效果只能自己补一个括号
沐子阳
2015-06-01 · TA获得超过786个赞
知道小有建树答主
回答量:677
采纳率:100%
帮助的人:347万
展开全部
条件运算符 的优先级高于 =
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式