标题:新手问:逻辑运算短路问题,前辈们指点!
取消只看楼主
ahwei
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-5-19
 问题点数:0 回复次数:0 
新手问:逻辑运算短路问题,前辈们指点!
#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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-146944-1-1.html




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

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