逻辑运算符的优先顺序

当然是右结合。
譬如这个薯卖表达式: a == b ? a : b ? c : d
它的结备宴合是这样的 a == b ? a : (b ? c : d)
如果是左结数滚逗合,它的结合是这样的: a == (b ? a : b) ? c : d
左结合性是:从左至右运算,
右结合性正好相反,
一般情况下结合性都和常规一样,但C语言里printf函数里的表达式满足右结合性:printf("%d",a◆b◆c);
此表达式先算b◆c在用b◆c的值和a相加 虽然和a◆b再◆c结果一样 ,但要注意结合性是不同的
大家可以试试看printf("%d",a/数桥b*c);
上面是我刚开始则毕册的回答,相信也有人犯过我这样的错误,现在有人指出来孙宏了。同喜啊。
感谢1楼的人
一个多运算对象的表达式运算时的前后顺序是先看优先级,高优先级先计算,低优先级后计算!在优先级相同的情况下,要看结合性,左结合性的运算符由左向右运算,右结合的运算符由右向左运算!
C语言中具有右结合性的运算符包括所在单目运算符以及赋值运算符(=)和条件运算符。其它都是左结合性!
例如:
表达式a=b=c◆d◆e*f
式中*号优先级最高,所以首先计算e*f,然后两个◆号涉及的三个对象c、d、(e*f)的计算顺序则是左结合,即先计算c◆d,然后再计算(c◆d)◆(e*f)!
因为赋值运算符=的优先级低于算术运算符,所以之后再计算:
a=b=(c◆d◆e*f),而又因为=的结合返樱隐性是由右向左,所以接下来再计算:
b=(c◆d◆e*f),最后才计算a=(b=(c◆d◆e*f))!!!
如果颂闷int i=1;printf("%d %d"i,◆◆i);这个例子才能体现函数参数的计算顺序,先计算右边◆◆i,再i,所以结果是2 2,而不是1 2。但和结合性无关,这是函数参数求值顺序!
1、优先级从上到下依次递减,最上面具有最高的优先级裂歼,贺碰逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优禅源谈先级相同。
2、在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;由于表达式有多种运算,不同的结合顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。
- 随机文章
- 热门文章
- 热评文章
- 电脑风扇哪是正背面 电脑风扇正背面准确安装措施
- 古代一公斤等于16两个或8个
- 观众演讲邀请,米国总统乔?拜登将于2月7日向国会颁发演讲
- 英雄联盟英雄电子竞技经理如何改变
- 图片批量添加水印v1.0
- 桌子|记者观察到地震、战役、制裁叙利亚饱经风霜的经历吗?
- 芬兰议会外交事务委员会已经完成了一个陈诉申请加入北约
- 使中国家庭“博物馆”在纸上颁发的皇宫万象宫开始出版
- 媒体:自从中国出入境政策调整,水果出口到中国
- 拉博拉,被选总统尼日利亚的布
- 退税申报流程是什么样的纳税申报页面
- 澳大利亚或购买英国核潜艇
- 菲律宾在23日外扳谈判
- 国际最新钻研:浅礁物种在澳大利亚在2008年和2021年之间下降
- 什么动物不会眨眼蚂蚁农场3月25日,以下哪种动物不眨眼
- “活”长城一千年烟火气
- “美学在“2023年国家大剧院即将到来的青年艺术节
- 玩耍王决斗链接团队决斗更新2023年4月以打开它
- 5克福可以旅游行业:科学和技术,以确保权力大槐树根祖先崇拜
- 原神深多久螺旋重置