搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 为什么运算符优先级和结合性在这了失效??????
标题:
为什么运算符优先级和结合性在这了失效??????
只看楼主
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
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-321345-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.284825 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved