第五章:C++ 运算符
在此篇教程中,我们将借助示例来了解 C++ 中不同类型的运算符。在编程中,运算符是对值或变量进行操作的符号。例如, + 是用于加法的运算符,而 – 是用于减法的运算符。
C++中的运算符可以分为6种类型:算术运算符
、赋值运算符 、关系运算符 、逻辑运算符 、按位运算符 、其他运算符 。
1. C++ 算术运算符
算术运算符用于对变量和数据执行算术运算。例如:
a + b;
这里, +
运算符用于将两个变量 a 和 b 相加。同样,C++ 中还有各种其他算术运算符,如下:
运算符 | 运算操作 |
---|---|
+ |
加法 |
- |
减法 |
* |
乘法 |
/ |
除法 |
% |
模运算(除法后取余数) |
示例 1:算术运算符
#include <iostream>
using namespace std;
int main()
{
int a, b;
a = 7;
b = 2;
// 打印a与b的求和结果
cout << "a + b = " << (a + b) << endl;
// 打印a与b的求差结果
cout << "a - b = " << (a - b) << endl;
// 打印a与b的相乘结果
cout << "a * b = " << (a * b) << endl;
// 打印a除以b的结果
cout << "a / b = " << (a / b) << endl;
// 打印a除以b取余数的结果(取模)
cout << "a % b = " << (a % b) << endl;
return 0;
}
输出:
a + b = 9 a - b = 5 a * b = 14 a / b = 3 a % b = 1
此处,运算符 +
, -
和 *
分别计算加法、减法和乘法。
注意:
/ 除法运算
注意:我们程序中的操作 (a / b)
。 /
运算符是除法运算符。
从上面的例子我们可以看出,如果一个整数除以另一个整数,我们就会得到商。但是,如果除数或被除数是浮点数,我们将得到小数形式的结果,诸如以下:
In C++: ---------- 7/2 is 3 7.0 / 2 is 3.5 7 / 2.0 is 3.5 7.0 / 2.0 is 3.5
% 取模运算符
模运算符 %
计算余数。当 a = 9
除以 b = 4
时,余数为 1。
Note: %
运算符只能与整数一起使用。
自增和自减运算符
C++ 还提供了自增和自减运算符:分别是 ++
和 --
。
++
将操作数的值增加 1--
将操作数的值减少 1
例如:
int num = 5;
// 自增运算符
++num; // 为6
以上,代码 ++num;
; 将 num 的值增加 1。
示例 2:自增和自减运算符
// 自增和自减运算符
#include <iostream>
using namespace std;
int main()
{
int a = 10, b = 100, result_a, result_b;
// 将 a 增加 1,并将结果存储在 result_a 中
result_a = ++a;
cout << "result_a = " << result_a << endl;
// 将 b 减少 1,并将结果存储在 result_b 中
result_b = --b;
cout << "result_b = " << result_b << endl;
return 0;
}
输出:
result_a = 11 result_b = 99
在上面的程序中,我们使用了 ++
和 --
运算符作为前缀(++a 和 –b)。但是,我们也可以将这些运算符用作后缀(a++ 和 b–)。
a = 5
++a; //a 变成 6
a++; //a 变成 7
–a; //a 变成 6
a--; //a 变成 5
如果使用 ++ 运算符作为前缀,例如:++var,则 var 的值加 1,然后返回值。
如果使用 ++ 运算符作为后缀,例如:var++,则首先返回 var 的原始值,然后 var 增加 1。
Note: — 运算符的工作方式与 ++ 运算符类似,只是 — 将值减 1。
示例 3:++和–作为前后缀区别
#include <iostream>
using namespace std;
int main()
{
int var1 = 5, var2 = 5;
// 将显示5,然后var1增加至6
cout << var1++ << endl;
// var2增加至6,然后显示
cout << ++var2 << endl;
return 0;
}
输出:
5
6
2. C++ 赋值运算符
在 C++ 中,赋值运算符用于为变量赋值。例如:
// 将5分配给变量a
a = 5;
以上,我们为变量a 分配了值 5
,以下为赋值运算符列举:
运算符 | 举例 | 等效 |
---|---|---|
= |
a = b; |
a = b; |
+= |
a += b; |
a = a + b; |
-= |
a -= b; |
a = a - b; |
*= |
a *= b; |
a = a * b; |
/= |
a /= b; |
a = a / b; |
%= |
a %= b; |
a = a % b; |
示例 3:赋值运算符
#include <iostream>
using namespace std;
int main()
{
int a, b;
// 2分配给a
a = 2;
// 7分配给b
b = 7;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "\nAfter a += b;" << endl;
// 将a和b的综合分配给a
a += b; // a = a +b
cout << "a = " << a << endl;
return 0;
}
输出:
a = 2 b = 7 After a += b; a = 9
3. C++ 关系运算符
关系运算符用于检查两个操作数之间的关系。例如:
// 检查a是否大于b
a > b;
此处, >
是一个关系运算符。它检查 a 是否大于b 。
如果关系为真True,则返回 1,如果关系为假False,则返回 0,以下为关系运算符汇总:
运算符 | 含义 | 举例 |
---|---|---|
== |
等于 | 3 == 5 则: false |
!= |
不等于 | 3 != 5 则: true |
> |
大于 | 3 > 5 则: false |
< |
小于 | 3 < 5 则: true |
>= |
大于等于 | 3 >= 5 则: false |
<= |
小于等于 | 3 <= 5 则: true |
示例 4:关系运算符
#include <iostream>
using namespace std;
int main() {
int a, b;
a = 3;
b = 5;
bool result;
result = (a == b); // false
cout << "3 == 5 is " << result << endl;
result = (a != b); // true
cout << "3 != 5 is " << result << endl;
result = a > b; // false
cout << "3 > 5 is " << result << endl;
result = a < b; // true
cout << "3 < 5 is " << result << endl;
result = a >= b; // false
cout << "3 >= 5 is " << result << endl;
result = a <= b; // true
cout << "3 <= 5 is " << result << endl;
return 0;
}
输出:
3 == 5 is 0 3 != 5 is 1 3 > 5 is 0 3 < 5 is 1 3 >= 5 is 0 3 <= 5 is 1
Note: 关系运算符常用于程序中的决策和循环。
4. C++ 逻辑运算符
逻辑运算符用于检查表达式是true还是false。如果表达式为true,则返回 1,如果表达式为false,则返回 0。
运算符 | 举例 | 含义 |
---|---|---|
&& |
表达式1 && 表达式2 | 逻辑与:仅当所有操作数都为真时才为真。 |
|| |
表达式1 || 表达式2 | 逻辑或:如果至少有一个操作数为真,则为真。 |
! |
!表达式 | 逻辑非:只有当操作数为假时才为真。 |
在 C++ 中,逻辑运算符常用于决策。为了进一步理解逻辑运算符,请看以下示例:
假设:
a = 5
b = 8
则:
(a > 3) && (b > 5) 为 true
(a > 3) && (b < 5) 为 false
(a > 3) || (b > 5) 为 true
(a > 3) || (b < 5) 为 true
(a < 3) || (b < 5) 为 false
!(a < 3) 为 true
!(a > 3) 为 false
示例 5:逻辑运算符
#include <iostream>
using namespace std;
int main() {
bool result;
result = (3 != 5) && (3 < 5); // true
cout << "(3 != 5) && (3 < 5) is " << result << endl;
result = (3 == 5) && (3 < 5); // false
cout << "(3 == 5) && (3 < 5) is " << result << endl;
result = (3 == 5) && (3 > 5); // false
cout << "(3 == 5) && (3 > 5) is " << result << endl;
result = (3 != 5) || (3 < 5); // true
cout << "(3 != 5) || (3 < 5) is " << result << endl;
result = (3 != 5) || (3 > 5); // true
cout << "(3 != 5) || (3 > 5) is " << result << endl;
result = (3 == 5) || (3 > 5); // false
cout << "(3 == 5) || (3 > 5) is " << result << endl;
result = !(5 == 2); // true
cout << "!(5 == 2) is " << result << endl;
result = !(5 == 5); // false
cout << "!(5 == 5) is " << result << endl;
return 0;
}
输出:
(3 != 5) && (3 < 5) is 1 (3 == 5) && (3 < 5) is 0 (3 == 5) && (3 > 5) is 0 (3 != 5) || (3 < 5) is 1 (3 != 5) || (3 > 5) is 1 (3 == 5) || (3 > 5) is 0 !(5 == 2) is 1 !(5 == 5) is 0
上面程序详细说明:
(3 != 5) && (3 < 5)
计算结果为1,因为操作数(3 != 5)
和(3 < 5)
都是 1 (true).(3 == 5) && (3 < 5)
计算结果为0,因为操作数(3 == 5)
为 0 (false).(3 == 5) && (3 > 5)
计算结果0,因为操作数(3 == 5)
和(3 > 5)
都是 0 (false).(3 != 5) || (3 < 5)
计算结果1,因为操作数(3 != 5)
和(3 < 5)
都是 1 (true).(3 != 5) || (3 > 5)
计算结果1, 因为操作数(3 != 5)
为 1 (true).(3 == 5) || (3 > 5)
计算结果 0,因为操作数(3 == 5)
和(3 > 5)
都是 0 (false).!(5 == 2)
计算结果1,因为操作数(5 == 2)
是 0 (false).!(5 == 5)
计算结果0,因为操作数(5 == 5)
是 1 (true).
5. C++ 按位运算符
在 C++ 中,按位运算符用于对单个位执行操作。它们只能与 char
和 int
数据类型一起使用。
运算符 | 描述 |
---|---|
& |
二进制 AND |
| |
二进制 OR |
^ |
二进制 XOR |
~ |
二进制补码 |
<< |
二进制左移 |
>> |
二进制右移 |
以上,若了解更多,请阅读后续教程:C++ 按位运算符
。
6. 其他 C++ 运算符
这是 C++ 中可用的其他一些常见运算符的汇总。我们将在后面的教程中深入了解它们:
运算符 | 描述 | 举例 |
---|---|---|
sizeof |
返回数据类型大小 | sizeof(int); // 4 |
?: |
根据条件返回值 | string result=(5>0)?"even":"odd"; // "even" |
& |
表示操作数的内存地址 | # // 变量num的内存地址 |
. |
访问结构变量或类对象的成员 | s1.marks = 92; |
-> |
与指针一起使用访问类或结构变量 | ptr->marks = 92; |
<< |
打印输出值 | cout << 5; |
>> |
获取输入值 | cin >> num; |
程序算法实验室 zhangJA-Lab
转载请注明:XAMPP中文组官网 » 那些年C++ 运算符