ad

《C++程序开发案例课堂》_了解C++的更好途径_4.2 运算符优先级和结合性

admin 67 2023-11-01

【摘要】 本书摘自《C++程序开发案例课堂》一书中第4章,第2节,由刘春茂、李琪编著。

4.2 运算符优先级和结合性

前面介绍了各种运算符的含义以及如何使用。但是,如果多个运算符一起使用,那么各 种运算符的优先级和结合性如何呢?下面介绍运算符的优先级和结合性。

4.2.1 运算符优先级

当不同的运算符混合运算时,运算顺序是根据运算符的优先级而定的,优先级高的运算 符先运算,优先级低的运算符后运算。在一个表达式中,如果各运算符有相同的优先级,运 算顺序是从左向右,还是从右向左,是由运算符的结合性确定的。

《C++程序开发案例课堂》_了解C++的更好途径_4.2 运算符优先级和结合性

下面通过一个例子来说明优先级的使用方法和技巧。

【例4-10】运算符优先级(代码4-10.txt)。

【代码剖析】

在该例中,定义了三个int型变量a、b、c, 变量 a 赋值为1,变量b 赋值为1,变量c 赋 值为0;再将a+b==2 的结果赋值给c, 将 c 的结果输出。

从运行结果来看, c 的结果为1。其过程首先是算术运算 a+b=2, 然后是逻辑运算 2=2,最后是赋值运算c=2=2 (若为真则结果是1,若为假则结果是0)。

4.2.2 运算符结合性

前面介绍了运算符的优先级,知道了运算符优先级高的先运算,优先级低的后运算。那 么,相同优先级C++ 如何处理呢?

因此引入运算符结合性的概念。运算符的结合性是指同一优先级的运算符在表达式中操 作的组织方向,即当一个运算对象两侧运算符的优先级别相同时,运算对象与运算符的结合 顺序。C++ 语言规定了各种运算符的结合方向(结合性)。大多数运算符结合方向是“自左至 右”,即先左后右。例如, a-b+c,b 两侧-和+两种运算符的优先级相同,按先左后右结合 方向, b 先与减号结合,执行 a-b 的运算,再执行加 c 的运算。除了自左至右的结合性外, C++ 语言有三类运算符参与运算的结合方向是从右至左,即单目运算符>条件运算符>赋值运 算符。

【代码剖析】

在该例中,定义了三个 int 型变量x、y、min, 输入x 和 y, 使用比较运算符比较 x 和y 的大小,把其中较小的值赋给 min, 在输出时,仍然使用比较运算符,判断输出是大于号还 是小于号,最后将min输出。从运行结果来看,比较了x 和 y 的大小,把结果输出。在该程序中,灵活地使用了比较 运算符,首先是比较两个数的大小,返回其中较小的;然后,使用比较运算符比较两个数大 小,返回的是比较结果。

4.4 大 神 解 惑

疑问1 C++ 位逻辑运算符的作用是什么?

C++位逻辑运算符的作用如下。

(1)掩码。

掩码是通过&(位与)将某些位设置为开(1),将某些位设置为关(0)。可将掩码0 看作不透 明,将1看作透明。

(2)打开位。

打开位是通过 |(位或)打开一个值的特定位,同时保持其他位的不变。这是因为和0位或 都为0,和1位或都为1。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《C++程序开发案例课堂》_了解C++的更好途径_2.3 输入和输出数据
下一篇:《C++程序开发案例课堂》_了解C++的更好途径_10.1 面向对象编程概述
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×