| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 919 人关注过本帖
标题:[求助]&&和||的问题
只看楼主 加入收藏
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
 问题点数:0 回复次数:15 
[求助]&&和||的问题



#include <stdio.h>
#define PR(x,y,z) printf("x=%d y=%d z=%d\n",x,y,z);
void main()
{
int x,y,z;
x=y=z=2; ++x || ++y && ++z; PR(x,y,z);

x=y=z=2; ++x && ++y || ++z; PR(x,y,z);

x=y=z=-2; ++x || ++y && ++z; PR(x,y,z);

x=y=z=-2; ++x && ++y || ++z; PR(x,y,z);
}


请高手解答下,谢谢

搜索更多相关主题的帖子: void include 
2007-02-08 14:07
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

A||B
如果A的值为非0那就不执行B
反之执行
A&&B
如果A的值为非0那就执行B
反之不执行

2007-02-08 14:42
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
得分:0 

哦,谢谢解答

那如果A||B||C ,这样的应该怎么执行?

A || B && C 应该执行哪个

2007-02-08 16:01
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用lhj2005在2007-2-8 16:01:28的发言:

哦,谢谢解答

那如果A||B||C ,这样的应该怎么执行?

A || B && C 应该执行哪个

(A||B)||C ----->D||C D代表A||B
A || B && C 也如此

2007-02-08 16:03
pc新手
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2007-1-28
收藏
得分:0 
&&比||权限高
先执行&&

是这样吗

不进则退
2007-02-08 17:31
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
不是
它俩优先级相同

从左至右运算
2007-02-08 17:33
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
我反对!
优先级从高到底
! → && → ||
2级 11级 12级

[此贴子已经被作者于2007-2-8 17:37:56编辑过]


羊肉串 葡萄干 哈密瓜!!
2007-02-08 17:37
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
得分:0 
x=y=z=2; ++x || ++y && ++z; PR(x,y,z);

那如果那这句来解释:
++x || ++y && ++z

先是 (++x || ++y) && ++z
++x || ++y 的话,++x是2,不为0,所以执行++x,x等于3
然后在怎么计算啊,我就不清楚了???
2007-02-08 17:50
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 

#include <stdio.h>
#define PR(x,y,z) printf("x=%d y=%d z=%d\n",x,y,z);
void main()
{
int x,y,z;
x=y=z=2; ++x || ++y && ++z; PR(x,y,z);

x=y=z=2; ++x && ++y || ++z; PR(x,y,z);

x=y=z=-2; ++x || ++y && ++z; PR(x,y,z);

x=y=z=-2; ++x && ++y || ++z; PR(x,y,z);
}
++x || ++y && ++z
先运行++x 条件为真 则不运行++y && ++z 直接输出 所以 输出3 2 2

++x && ++y || ++z
&&(先运行++x如果条件为真则运行++y) 因为前两个条件为真所以不运行++z 所以输出3 3 2


羊肉串 葡萄干 哈密瓜!!
2007-02-08 18:17
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 

如果楼主 还不明白的话 我还可以给你解释的在详细一点


羊肉串 葡萄干 哈密瓜!!
2007-02-08 18:17
快速回复:[求助]&&和||的问题
数据加载中...
 
   



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

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