搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 运算优先级的一个问题?
标题:
运算优先级的一个问题?
只看楼主
chihuyu
等 级:
论坛游民
帖 子:70
专家分:13
注 册:2011-12-26
结帖率:
100%
楼主
问题点数:0 回复次数:6
运算优先级的一个问题?
#include"stdio.h"
void main()
{
int a=3,b=4,c;
c=a>b?++a:++b;
printf("c=%d\n",c);
}
问题:
‘>’为关系运算符,而‘++x’为算术运算符,照理来说,算术运算符的优先级要比关系运算符高,但为什么实际情况是 先做了>的运算呢?
请高手回答,谢谢!
搜索更多相关主题的帖子:
void
include
优先级
2012-01-24 16:21
墨清扬
等 级:
蝙蝠侠
威 望:
1
帖 子:294
专家分:817
注 册:2011-10-4
第
2
楼
得分:0
答案是5吗?这里先运算>,然后是?:,然后根据结果再运算++x
酱油实习生
2012-01-24 23:49
beyondyf
等 级:
贵宾
威 望:
103
帖 子:3282
专家分:12654
注 册:2008-1-21
第
3
楼
得分:0
在你的问题里'++X'是嵌套在条件运算符?:里的一个目的表达式。
可以理解为 (a > b) ? (++a) : (++b);
重剑无锋,大巧不工
2012-01-25 12:01
ai8343512
等 级:
论坛游民
帖 子:75
专家分:94
注 册:2011-8-7
第
4
楼
得分:0
c=a>b?++a:++b;
= 号的优先级最低,所以最后赋值
?:是三目运算符,优先级在整句话中最高,其实不用记,做多了题自然就知道了
然后不是再用优先级来判断>和++的优先运算性,而是因为三目运算法的计算规则必须是先看前面的条件符不符合,符合就运算前面的++a不符合就运算后面的++b。
思考不应该由他人来指导,会思考的人不需要你来提醒他去思考一个简单的问题。
2012-01-25 13:49
chihuyu
等 级:
论坛游民
帖 子:70
专家分:13
注 册:2011-12-26
第
5
楼
得分:0
回复 4楼 ai8343512
还是没有将清楚
2012-01-25 22:41
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
6
楼
得分:0
如果你知道三目運算符在內部是被擴展為if/else語句處理的,自然明白為什麼如此。
授人以渔,不授人以鱼。
2012-01-25 23:00
chihuyu
等 级:
论坛游民
帖 子:70
专家分:13
注 册:2011-12-26
第
7
楼
得分:0
貌似有点懂了,谢谢
2012-01-27 09:31
7
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-359986-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.154802 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved