| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 543 人关注过本帖
标题:看C 语言解惑 时候遇到运算顺序的疑惑
只看楼主 加入收藏
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
结帖率:98.63%
收藏
已结贴  问题点数:20 回复次数:4 
看C 语言解惑 时候遇到运算顺序的疑惑
有三条语句

( z  >= y >= x ) ?  1: 0;     ->  

x += y += z ;            <-

x | y & z ;                    <-

就像我打得箭头一样,第一个顺序是

1.
( ( z >=  y ) >= x ) ? 1: 0            从内到外的顺序对条件求值

2.
第二个是
( x += ( y += z ) ) ;

3.
第三个顺序是
( x  | ( y & z );                            先对最内层的表达式求值

为什么都是由内到外,1是从左到右, 2,3 却是从右到左??

难道1 和 2, 3 的性质不一样? 1 是 比较大小性质的, 从左到右比较

2,3 是计算性质的, 从右到左计算
搜索更多相关主题的帖子: 计算 表达式 
2012-01-24 19:14
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:7 
运算符除了有优先级外,还有运算方向。
比较运算是从左向右的,赋值运算是从右向左的,而第三问它俩优先级就不同
收到的鲜花
  • madfrogme2012-01-24 19:32 送鲜花  5朵  

重剑无锋,大巧不工
2012-01-24 19:30
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
回复 2楼 beyondyf
呵呵,看来给我猜对了啊!谢谢斑竹

The quieter you become, the more you can hear
2012-01-24 19:33
爱德华
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:183
专家分:536
注 册:2011-5-29
收藏
得分:7 
这里有两点要注意:1.优先级大小,在同一个优先级的无先后运算之分,看它是左结合还是右结合。
                  2.括号运算符,它能改变运算的顺序,先算里面的,再算外面的.
收到的鲜花
  • madfrogme2012-01-25 00:10 送鲜花  2朵  

算法,数据结构,windows核心编程.
2012-01-24 20:59
回首依依
Rank: 7Rank: 7Rank: 7
来 自:苏州
等 级:黑侠
威 望:1
帖 子:193
专家分:524
注 册:2011-12-3
收藏
得分:7 
优先级和运算方向共同决定的。
收到的鲜花
  • madfrogme2012-01-25 00:10 送鲜花  1朵  
2012-01-24 21:26
快速回复:看C 语言解惑 时候遇到运算顺序的疑惑
数据加载中...
 
   



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

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