| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1191 人关注过本帖
标题:新手问:逻辑运算短路问题,前辈们指点!
只看楼主 加入收藏
ahwei
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-5-19
收藏
 问题点数:0 回复次数:5 
新手问:逻辑运算短路问题,前辈们指点!
#include <stdio.h>
void main()
{
int x,y,z;
x=y=z=1;
++x||++y&&++z;
printf("x=%d,y=%d,z=%");
}

输出结果是:x=2,y=1,z=1
我在书上看的:a&&b<c,如果a的值为0,系统便确定表达式的运算结果总是0,忽略表达式b<c的值,如果a的值为1,这时要计算b<c的值
a||b<c,如果a的值为1,系统便确定表达式的运算结果总是1,忽略表达式b<c的值,如果a的职位0,这是要计算b<c的值
那么以上表达式中:++x||++y&&++z
++x的值是2,表达式可看作是1&&++z,也就是说现在a的值为真值,要计算后便++z的值阿,输出结果应为x=2,y=1,z=2吧?

搜索更多相关主题的帖子: 逻辑运算 前辈 短路 
2007-06-13 01:33
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
++x||++y && ++z;
由于&&的优先级比||高,所以++x||++y && ++z;相当于++x|| (++y && ++z) ;
结果可想而知了.

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-06-13 01:45
alei21
Rank: 1
来 自:陕西
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-7-20
收藏
得分:0 
回复 2# 的帖子
&&的优先级高,就应该先运算(++y && ++z),可为什么先做的是++x??

用时间干掉一切!
2008-11-18 17:52
alei21
Rank: 1
来 自:陕西
等 级:新手上路
帖 子:58
专家分:0
注 册:2008-7-20
收藏
得分:0 
请求指点!谢谢了!

用时间干掉一切!
2008-11-21 18:15
快速回复:新手问:逻辑运算短路问题,前辈们指点!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032017 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved