![C++ 从入门到项目实践(超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/805/26846805/b_26846805.jpg)
5.1 C++的运算符
C++的运算符非常丰富,使得C++的运算十分灵活方便。其中有很多运算符都是从C语言继承下来的,它新增的运算符有作用域运算符“::”和成员指针运算符“->”。
和其他高级语言一样,C++语言根据使用运算符的对象之间的关系,将运算符分为算术运算符、关系运算符、逻辑运算符、赋值运算符等。根据使用运算符的对象个数,将运算符分为单目运算符、双目运算符和三目运算符。
5.1.1 运算符的功能和定义
![](https://epubservercos.yuewen.com/F7D2C7/15289822205524706/epubprivate/OEBPS/Images/Figure-P77_11370.jpg?sign=1739258088-YB7tDNBamrqwqI0ip792ByJTBXyn9IAg-0-22df82e56692c9175129ce251c3121ad)
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++内置了丰富的运算符,不同的运算符有不同的运算次序。各种运算符的优先级以及功能说明见表5-1。
表5-1 运算符的功能说明
![](https://epubservercos.yuewen.com/F7D2C7/15289822205524706/epubprivate/OEBPS/Images/Figure-T78_11476.jpg?sign=1739258088-XRpyNdrBbillfhRxP0f0HIm6ZggTHsQc-0-6f68bfd1e416de1bf166ddf443f6b1fa)
5.1.2 运算符的操作数
![](https://epubservercos.yuewen.com/F7D2C7/15289822205524706/epubprivate/OEBPS/Images/Figure-P78_11474.jpg?sign=1739258088-VVg3SicfsyjqnxSasi8Hw8QLVYr5LdO3-0-61d9c189b7e9ee58359a526e9dc8d34d)
运算符也称为操作符,是对程序中的数据进行运算。参与运算的数据称为操作数。变量、常量等通过运算符组合成的表达式,也能作为操作数来构成更复杂的表达式。
对于运算符的操作数,应注意以下几个方面。
(1)运算符的功能和语义。
(2)运算符的操作数,每个运算符对其操作数的个数、类型和值都有一定限制。
(3)每个运算符都有确定的优先级。
(4)运算符的结合性。表5-2给出了C++中的主要运算符的功能、优先级、结合性。表中按优先级从高到低分为18个级别。
5.1.3 运算符的结合性与优先级
![](https://epubservercos.yuewen.com/F7D2C7/15289822205524706/epubprivate/OEBPS/Images/Figure-P78_11475.jpg?sign=1739258088-LUhbro4fY48FSVxxHO6ynJDuTA3igOZs-0-a3c858962b7e7602490af6e173af3919)
如果表达式中有两个或两个以上不同的运算符,则按一定的次序来计算,这种次序被称作优先级。如果表达式中相同的运算符有一个以上,则可从左至右或从右至左地计算,这称作为结合性。
运算符计算时都有一定的顺序,就好像先要算乘除后再算加减一样。优先级和结合性是运算符两个重要的特性,结合性又称为计算顺序,它决定组成表达式的各个部分是否参与计算以及什么时候计算。
见表5-2,将按运算符优先级从高到低列出各个运算符,具有较高优先级的运算符出现在表格的上面,具有较低优先级的运算符出现在表格的下面。在表达式中,较高优先级的运算符会优先被计算。
表5-2 C++运算符优先级与结合性
![](https://epubservercos.yuewen.com/F7D2C7/15289822205524706/epubprivate/OEBPS/Images/Figure-T79_71889.jpg?sign=1739258088-v3dsoohCtFYKxXxvaJC9N4EZww4PKusj-0-c038f78b79252b6b5895faaff7115340)
【例5-1】编写程序,通过运算,了解运算符的结合性。
(1)在Visual Studio 2017中,新建名称为“5-1.cpp”的Project1文件。
(2)在代码编辑区域输入以下代码。
![](https://epubservercos.yuewen.com/F7D2C7/15289822205524706/epubprivate/OEBPS/Images/Figure-P79_71891.jpg?sign=1739258088-4HWTurBwDvyGTWC7iECCBRx305HzHUHx-0-409538ec4a839c9ad4e940bdc540b31e)
【程序分析】本例定义了5个变量,x、y、m、n和a,并给x、y、m、n赋初值。通过这4个变量的运算,演示运算符的结合性。
在Visual Studio 2017中的运行结果如图5-1所示。
![](https://epubservercos.yuewen.com/F7D2C7/15289822205524706/epubprivate/OEBPS/Images/Figure-P79_11768.jpg?sign=1739258088-euFIhlXtfu0wU7FRVB3stursuMAM89M3-0-a35046f9d2d58c7e6b45055a72ba92e4)
图5-1 运算符的结合性