|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 为什么运算符优先级和结合性在这了失效??????
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
618
人关注过本帖
标题:
为什么运算符优先级和结合性在这了失效??????
只看楼主
加入收藏
crazy_pro
等 级:
论坛游民
帖 子:13
专家分:12
注 册:2010-9-17
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:20 回复次数:9
为什么运算符优先级和结合性在这了失效??????
#include <iostream.h>
void main()
{
int x(3),y(4),z;
z=x>y?++x:++y;
cout<<x<<","<<y<<","<<z<<endl;//x=3 y=5 z=5
z=x-y?x+y:x-3?y:x;
cout<<x<<","<<y<<","<<z<<endl;//x=3 y=5 z=8
}
结果是:3 5 5
3 5 8
为什么第二次输出Z的值是8???求教
搜索更多相关主题的帖子:
运算符
失效
结合
2010-09-25 22:45
举报帖子
使用道具
赠送鲜花
xin310923
等 级:
职业侠客
威 望:
1
帖 子:203
专家分:325
注 册:2009-12-22
第
2
楼
收藏
得分:0
:
优先级比=
?的优先级高。
2010-09-26 15:55
举报帖子
使用道具
赠送鲜花
crazy_pro
等 级:
论坛游民
帖 子:13
专家分:12
注 册:2010-9-17
第
3
楼
收藏
得分:0
回复 2楼 xin310923
那为什么结果Z的值是8而不是3???????????
2010-09-27 13:22
举报帖子
使用道具
赠送鲜花
minghan0313
等 级:
论坛游民
帖 子:15
专家分:31
注 册:2007-5-21
第
4
楼
收藏
得分:20
条件操作符的优先级相当低.当我们要在一个更大的表达式中嵌入条件表达式时,通常必须用圆括号把表达式括起来...........如果不严格使用圆括号将条件操作符括起来,将会得到意外的结果
因为不确定你问题的所在
所以翻了翻书
上面是从C++primer第四版 165页摘的一段话
z=
x-y
?
x+y
:x-3?y:x;
因为优先级低,可不可以上面的表达式按颜色看成一个大的条件操作运算 ?x=3 y=5 z=5
先判断红色的 x-y
x-y不等于0
所以z=x+y=8
x-3?y:x根本就没有执行
不知道自己说的正确与否
全为一家之见
如果说错了请不要见怪
我也是初学者
2010-09-27 14:52
举报帖子
使用道具
赠送鲜花
xin310923
等 级:
职业侠客
威 望:
1
帖 子:203
专家分:325
注 册:2009-12-22
第
5
楼
收藏
得分:0
回复 4楼 minghan0313
反正就是优先级的问题
自己回去看书吧
2010-09-27 15:09
举报帖子
使用道具
赠送鲜花
xin310923
等 级:
职业侠客
威 望:
1
帖 子:203
专家分:325
注 册:2009-12-22
第
6
楼
收藏
得分:0
lz也要回去多看几遍c++
2010-09-27 15:10
举报帖子
使用道具
赠送鲜花
crazy_pro
等 级:
论坛游民
帖 子:13
专家分:12
注 册:2010-9-17
第
7
楼
收藏
得分:0
回复 4楼 minghan0313
他的结合性是由右向左的啊
是不是应该先算后面的啊!然后再算前面的表到式的值啊???如果按你说的
就没有问题啊,但是如果按我说的Z的值就是3啊!条件运算符的 结合性是由右向左的啊! 谢谢4楼的回复!
2010-09-27 23:10
举报帖子
使用道具
赠送鲜花
crazy_pro
等 级:
论坛游民
帖 子:13
专家分:12
注 册:2010-9-17
第
8
楼
收藏
得分:0
回复 5楼 xin310923
谢谢
2010-09-27 23:10
举报帖子
使用道具
赠送鲜花
minghan0313
等 级:
论坛游民
帖 子:15
专家分:31
注 册:2007-5-21
第
9
楼
收藏
得分:0
以下是引用
crazy_pro
在2010-9-27 23:10:24的发言:
他的结合性是由右向左的啊
是不是应该先算后面的啊!然后再算前面的表到式的值啊???如果按你说的
就没有问题啊,但是如果按我说的Z的值就是3啊!条件运算符的 结合性是由右向左的啊! 谢谢4楼的回复!
我也问了问其他同学
有人的确给出了结合性是从右向左计算的
不过就这个表达式来说
x-3?y:x这个表达式的值对整个表达式时没有影响的 因为在x-3?y:x里没有改变x和y的值 先计算x-3?y:x 也不会影响到前面xyz的值
如果变成x-3?++y:++x; 那么结果的值就该考虑了
2010-09-28 08:59
举报帖子
使用道具
赠送鲜花
vfdff
等 级:
侠之大者
威 望:
8
帖 子:2172
专家分:425
注 册:2005-7-15
第
10
楼
收藏
得分:0
多加点括号吧
~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-09-29 00:08
举报帖子
使用道具
赠送鲜花
10
1/1页
1
快速回复:
为什么运算符优先级和结合性在这了失效??????
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.025176 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved