注册
登录
论坛
搜索
万卷图书
»
C语言
» 逻辑命题求解
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
发短消息
加为好友
C玩家
当前离线
UID
3031
帖子
2
精华
0
积分
0
阅读权限
10
在线时间
1 小时
注册时间
2011-10-6
最后登录
2011-11-4
新手上路
1
#
打印
字体大小:
t
T
C玩家
发表于 2011-10-6 15:18
|
只看该作者
逻辑命题求解
怎样
问x=y=z=2; ++x || ++y && ++z;经过这些运算之后x,y,z的值是多少?运算步骤是怎样的?
收藏
分享
评分
回复
引用
订阅
TOP
发短消息
加为好友
fwbook
当前离线
UID
1
帖子
2324
精华
0
积分
0
阅读权限
200
在线时间
1590 小时
注册时间
2009-7-30
最后登录
2024-12-21
管理员
2
#
fwbook
发表于 2011-10-8 08:42
|
只看该作者
1#
C玩家
分别说一下:
x=y=z=2;
相当于:
z=2;
y=z;
x=y;
所以x、y、z的值都是2。
++x || ++y && ++z;
是三个条件的逻辑运算。||和&&的运算优先级相同。这时,就从左边开始运算。而对于||运算符,只要有一个运算为真,就全部为真,后续的不运算了。在这里++x一旦为真,++y和++z就不运算了。
回复
引用
TOP
发短消息
加为好友
C玩家
当前离线
UID
3031
帖子
2
精华
0
积分
0
阅读权限
10
在线时间
1 小时
注册时间
2011-10-6
最后登录
2011-11-4
新手上路
3
#
C玩家
发表于 2011-10-9 11:18
|
只看该作者
按照优先级的高低,“++”运算不是比“||”和“&&”运算高级吗?那为什么不是先++x;++y;++z;然后再运算x||y&&z;呢?
回复
引用
TOP
发短消息
加为好友
kobebryant
当前离线
UID
884
帖子
14
精华
0
积分
0
阅读权限
100
在线时间
4 小时
注册时间
2010-10-13
最后登录
2011-10-9
版主
4
#
kobebryant
发表于 2011-10-9 20:01
|
只看该作者
++优先级最高,先算。
&&优先级高于||,结合方向是自左向右。
当然,你给的这个题目是不影响结果。
如果改为下面题目就不一样了:
x=y=z=0;
++x || y ++&& ++z
回复
引用
TOP
返回列表