《C++语言入门经典》一2.4 运算符

简介: 本节书摘来自华章出版社《C++语言入门经典》一书中的第2章,第2.4节,作者 郭鑫 顾彦玲,更多章节内容可以访问云栖社区“华章计算机”公众号查看

2.4 运算符

运算符就是具有运算功能的符号。C++语言中有丰富的运算符,其中有很多都是从C语言
继承下来的,它新增的运算符有作用域运算符(::),成员指针运算符(->)。
和C语言一样,根据使用运算符的对象个数,C++语言中可以将运算符分为单目运算符、
双目运算符和三目运算符。根据使用运算符的对象之间的关系,可以将运算符分为算术运算
符、关系运算符、逻辑运算符、赋值运算符、位运算符、移位运算符、sizeof 运算符、条件运
算符和逗号运算符。

2.4.1 算术运算符

算术运算主要是指常用的加(+)、减(-)、乘(*)、除(/)四则运算符,以及模运算
(%)和自增加运算(++)、自减少(--),算术运算符中有单目运算符和双目运算符。算术
运算符及其功能如表2.8所示。
image

说明expr表示使用运算符的对象,可以是表达式、变量和常量。

1)+是加法运算符,可以进行两个对象的加法运算,例如:1+1表示两个常量相加;i+1表
示变量和常量相加;x+y表示两个变量相加;+100表示有符号的常量,强调常量是正数。
2)-是减法运算符,可以进行两个对象的减法运算,例如:1-1表示两个常量相减;j-1表

示变量和常量相减;x-y表示两个变量相减;-100表示有符号的常量,强调常量是一个负值。
3)是乘法运算符,可以进行两个对象的乘法运算,例如:23表示两个常量相乘。
4)/是除法运算符,可以对两个对象进行除法运算,例如:2/3表示两个常量相除。/运算

符左侧的是被除数,也称分子;/运算符右侧的是除数,也称为分母。
在进行除法运算时,除数或分母不可以为0,若为0,则会产生溢出,处理器抛出异常。例

如:2/0是不合法运算;而0/2是合法运算,计算结果是0。
两个整型数值进行除法运算时返回的结果可能是一个小数,小数点后的数值会被舍去。
5)%是模运算符,求两个整型的数值或变量在进行除法运算后的余数。例如:5/2表示两

个常量进行求模运算,计算结果是1。

6)++是自加运算符,属于单目运算符。有++expr和expr++两种形式,++expr表示expr自身
加1后再进行其他运算;expr++表示expr先参加完其他运算后再进行自身加1,expr只能是变量。
例如:i++表示i自增1后再参与其他运算;++i表示i参与运算后,i的值再自增;1++不合法。

7)--是自减运算符,属于单目运算符。有--expr和expr--两种形式,--expr表示expr自身
减1后再进行其他运算;expr--表示expr先参加完其他运算后再进行自身减1,expr只能是变量。
例如:i--表示i自减1后再参与其他运算;--i表示i参与运算后,i的值再自减;1--不合法。

2.4.2 关系运算符

关系运算主要是对两个对象进行比较,运算结果是逻辑常量真或假。关系运算符及其功能
如表2.9所示。

image

1)<用于比较两个对象的大小,前者小于后者,运算结果为真。例如:a进行比较,如果变量a的值小于变量b的值,运算结果为真;2<1的运算结果为假。

2)>用于比较两个对象的大小,前者大于后者,运算结果为真。例如:a>b表示两个变量
进行比较,如果变量a的值大于变量b的值,运算结果为真;2>1的运算结果为真。

3)>=用于比较两个对象的大小,前者大于或等于后者,运算结果为真。例如:3>=2的运
算结果为真;2>=2的运算结果为真。

4)<=用于比较两个对象的大小,前者小于或等于后者,运算结果为真。例如:1<=2的运
算结果为真。

5)==用于对两个对象进行判断,前者恒等于后者,运算结果为真。例如:a==b表示两个

变量进行比较,如果变量a的值恒等于变量b的值,运算结果为真。
6)!=用于对两个对象进行判断,前者不等于后者,运算结果为真。例如:a!=b 表示两个
变量进行比较,如果变量a的值不等于变量b的值,运算结果为真。
关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算
符,高于赋值运算符。在6个关系运算符中,<,<=,>,>=的优先级相同,高于==和!=,==
和!=的优先级相同。

相关文章
|
C++
C++ 语言异常处理实战:在编程潮流中坚守稳定,开启代码可靠之旅
【8月更文挑战第22天】C++的异常处理机制是确保程序稳定的关键特性。它允许程序在遇到错误时优雅地响应而非直接崩溃。通过`throw`抛出异常,并用`catch`捕获处理,可使程序控制流跳转至错误处理代码。例如,在进行除法运算或文件读取时,若发生除数为零或文件无法打开等错误,则可通过抛出异常并在调用处捕获来妥善处理这些情况。恰当使用异常处理能显著提升程序的健壮性和维护性。
183 2
|
21天前
|
存储 C++
C++语言中指针变量int和取值操作ptr详细说明。
总结起来,在 C++ 中正确理解和运用 int 类型地址及其相关取值、设定等操纵至关重要且基础性强:定义 int 类型 pointer 需加星号;初始化 pointer 需配合 & 取址;读写 pointer 执向之处需配合 * 解引用操纵进行。
133 12
|
6月前
|
存储 负载均衡 算法
基于 C++ 语言的迪杰斯特拉算法在局域网计算机管理中的应用剖析
在局域网计算机管理中,迪杰斯特拉算法用于优化网络路径、分配资源和定位故障节点,确保高效稳定的网络环境。该算法通过计算最短路径,提升数据传输速率与稳定性,实现负载均衡并快速排除故障。C++代码示例展示了其在网络模拟中的应用,为企业信息化建设提供有力支持。
163 15
|
6月前
|
存储 算法 安全
企业员工数据泄露防范策略:基于 C++ 语言的布隆过滤器算法剖析[如何防止员工泄密]
企业运营过程中,防范员工泄密是信息安全领域的核心议题。员工泄密可能致使企业核心数据、商业机密等关键资产的流失,进而给企业造成严重损失。为应对这一挑战,借助恰当的数据结构与算法成为强化信息防护的有效路径。本文专注于 C++ 语言中的布隆过滤器算法,深入探究其在防范员工泄密场景中的应用。
105 8
|
算法 C语言 C++
C++语言学习指南:从新手到高手,一文带你领略系统编程的巅峰技艺!
【8月更文挑战第22天】C++由Bjarne Stroustrup于1985年创立,凭借卓越性能与灵活性,在系统编程、游戏开发等领域占据重要地位。它继承了C语言的高效性,并引入面向对象编程,使代码更模块化易管理。C++支持基本语法如变量声明与控制结构;通过`iostream`库实现输入输出;利用类与对象实现面向对象编程;提供模板增强代码复用性;具备异常处理机制确保程序健壮性;C++11引入现代化特性简化编程;标准模板库(STL)支持高效编程;多线程支持利用多核优势。虽然学习曲线陡峭,但掌握后可开启高性能编程大门。随着新标准如C++20的发展,C++持续演进,提供更多开发可能性。
188 0
|
11月前
|
算法 C++
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
236 5
|
12月前
|
C++
【C++基础】运算符详解
这篇文章详细解释了C++中运算符的用法,包括算术运算符、赋值运算符、比较运算符和逻辑运算符,以及它们在表达式中的作用和示例。
159 2
|
11月前
|
存储 编译器 C语言
深入计算机语言之C++:类与对象(上)
深入计算机语言之C++:类与对象(上)
|
11月前
|
存储 分布式计算 编译器
深入计算机语言之C++:C到C++的过度-2
深入计算机语言之C++:C到C++的过度-2
|
11月前
|
编译器 Linux C语言
深入计算机语言之C++:C到C++的过度-1
深入计算机语言之C++:C到C++的过度-1
117 0