|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ C中逻辑运算符的优先级问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1010
人关注过本帖
标题:
C中逻辑运算符的优先级问题
只看楼主
加入收藏
浩加加
等 级:
论坛游民
帖 子:51
专家分:14
注 册:2009-11-12
结帖率:
94.12%
楼主
收藏
已结贴
√
问题点数:20 回复次数:6
C中逻辑运算符的优先级问题
#include<stdio.h>
void main(){
int a,b,c,d;
a=b=c=1;
d=++a||++b&&++c;
printf("d=%d,a=%d,b=%d,c=%d\n",d,a,b,c);
}
输出为什么是d=1,a=2,b=1,c=1
&&的优先级比||高的话,应该先执行++b&&++c,结果等于1,那么b和c应该都增1才对啊,望各位高手指教,谢谢了!
搜索更多相关主题的帖子:
逻辑运算符
2010-01-17 16:55
举报帖子
使用道具
赠送鲜花
nbaqqqq
等 级:
论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
第
2
楼
收藏
得分:20
逻辑或(有一项为真即为真)
当d=++a||++b&&++c时,先执行++a
a=2
即为真,则后面的++b&&++c不在运算,把1(真)赋给d,因此最后输出是d=1,a=2,b=1,c=1
2010-01-17 18:10
举报帖子
使用道具
赠送鲜花
浩加加
等 级:
论坛游民
帖 子:51
专家分:14
注 册:2009-11-12
第
3
楼
收藏
得分:0
&&的优先级比||高的话,应该先执行++b&&++c的啊
向来缘浅.奈何情深 如花美眷.似水流年
2010-01-17 19:38
举报帖子
使用道具
赠送鲜花
nbaqqqq
等 级:
论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
第
4
楼
收藏
得分:0
优先级别是高
为了好理解加括号上去
d=(++a)||((++b)&(&++c))
执行||左边的++a后
相当于d=1||(++b&&++c)
||右边就不会执行了
你 有没有武汉大学出版社的C语言程序设计书
第36页有个差不多的列题
2010-01-17 20:46
举报帖子
使用道具
赠送鲜花
nbaqqqq
等 级:
论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
第
5
楼
收藏
得分:0
打错了
是d=(++a)||((++b)&&(++c))
2010-01-17 20:47
举报帖子
使用道具
赠送鲜花
nbaqqqq
等 级:
论坛游侠
帖 子:202
专家分:137
注 册:2009-11-6
第
6
楼
收藏
得分:0
d=(++a)||{(++b)&&(++c)}
先算小括号里的
在算大括号里的
但从左到右先执行++a
就成了d=2||{(++b)&&(++c)}
一项为真即为真
||右边的就不会执行了,得d=1。
2010-01-17 20:56
举报帖子
使用道具
赠送鲜花
浩加加
等 级:
论坛游民
帖 子:51
专家分:14
注 册:2009-11-12
第
7
楼
收藏
得分:0
= =原来这样啊`谢谢拉
向来缘浅.奈何情深 如花美眷.似水流年
2010-01-17 21:27
举报帖子
使用道具
赠送鲜花
7
1/1页
1
快速回复:
C中逻辑运算符的优先级问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.075665 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved