|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 关于C语言中的短路问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1763
人关注过本帖
标题:
关于C语言中的短路问题
只看楼主
加入收藏
a151141
等 级:
黑侠
威 望:
1
帖 子:197
专家分:680
注 册:2012-10-19
结帖率:
78.57%
楼主
收藏
已结贴
√
问题点数:40 回复次数:4
关于C语言中的短路问题
#include<stdio.h>
main()
{
int x,y,z,t;
x=y=z=t=1;
t=++x||++y&&++z;
printf("%d\n",x);
printf("%d\n",y);
printf("%d\n",z);
printf("%d\n",t);
}
为什么y不是2呢?
在C语言中&&的优先级要比||的的优先级高啊?
搜索更多相关主题的帖子:
C语言
优先级
2014-03-23 14:35
举报帖子
使用道具
赠送鲜花
ying8501
等 级:
蜘蛛侠
威 望:
6
帖 子:1092
专家分:1446
注 册:2008-11-24
第
2
楼
收藏
得分:14
t=++x||++y&&++z;
短路原则: 对于A
||
B || C 来说,当A为1时,不再计算B,C
因为最先计算++x,其值为2在逻辑运算中值为真,由短路原则可知表达式(++y&&++z)不再计算。所以y和t的值仍为1.
2014-03-23 15:03
举报帖子
使用道具
赠送鲜花
ying8501
等 级:
蜘蛛侠
威 望:
6
帖 子:1092
专家分:1446
注 册:2008-11-24
第
3
楼
收藏
得分:0
短路原则和优先级无关, 对于A
||
B || C 来说,只要当表达式A为1时,就不再计算表达式B和表达式C
2014-03-29 10:16
举报帖子
使用道具
赠送鲜花
韶志
来 自:斗气大陆
等 级:
贵宾
威 望:
44
帖 子:2223
专家分:13592
注 册:2013-3-22
第
4
楼
收藏
得分:14
因为++x=2已经为真,所以不再对 || 后面的表达式进行运算
三十年河东,三十年河西,莫欺少年穷!
2014-03-29 12:07
举报帖子
使用道具
赠送鲜花
generalshao
等 级:
论坛游民
帖 子:20
专家分:21
注 册:2010-5-14
第
5
楼
收藏
得分:14
++x=2优先级高
2014-03-29 16:48
举报帖子
使用道具
赠送鲜花
5
1/1页
1
快速回复:
关于C语言中的短路问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.036247 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved