|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 运算优先级的一个问题?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
547
人关注过本帖
标题:
运算优先级的一个问题?
只看楼主
加入收藏
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
快速回复:
运算优先级的一个问题?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.026229 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved