C++系列内容的学习目录 → \rightarrow →C++学习系列内容汇总。
1. 运算符概述
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。
运算符的作用: 用于执行代码的运算。
C++ 内置了丰富的运算符,并提供了以下类型的运算符:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、杂项运算符。
本章我们主要讲解以下几类运算符:
运算符类型 | 作用 |
---|---|
算术运算符 | 用于处理四则运算 |
赋值运算符 | 用于将表达式的值赋给变量 |
比较运算符 | 用于表达式的比较,并返回一个真值或假值 |
逻辑运算符 | 用于根据表达式的值返回真值或假值 |
2. 算术运算符
算术运算符的作用:用于处理四则运算 。
算术运算符包括以下符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
+ | 正号 | +3 | 3 |
- | 负号 | -3 | -3 |
+ | 加 | 10 + 5 | 15 |
- | 减 | 10 - 5 | 5 |
* | 乘 | 10 * 5 | 50 |
/ | 除 | 10 / 5 | 2 |
% | 取模(取余) | 10 % 3 | 1 |
++ | 前置递增 | a=2; b=++a; | a=3; b=3; |
++ | 后置递增 | a=2; b=a++; | a=3; b=2; |
- - | 前置递减 | a=2; b=- -a; | a=1; b=1; |
- - | 后置递减 | a=2; b=a- -; | a=1; b=2; |
加减乘除运算的实例如下所示。
#include<iostream>
using namespace std;
int main()
{
//加减乘除
int a1 = 10;
int b1 = 3;
cout << a1 + b1 << endl;
cout << a1 - b1 << endl;
cout << a1 * b1 << endl;
cout << a1 / b1 << endl; //两个整数相除,结果依然是整数,将小数部分去除
int a2 = 10;
int b2 = 20;
cout << a2 / b2 << endl;
//int a3 = 10;
//int b3 = 0;
//cout << a3 / b3 << endl; // 错误,两个数相除,除数不能为0
double d1 = 0.5;
double d2 = 0.22;
cout << d1 / d2 << endl; //两个小数可以相除,运算的结果也可以是小数
system("pause");
return 0;
}
13
7
30
3
0
2.27273
取模运算的实例如下所示。
#include<iostream>
using namespace std;
int main()
{
//取模运算的本质就是求余数,只有整型变量可以进行取模运算
int a1 = 10;
int b1 = 3;
cout << a1 % b1 << endl;
int a2 = 10;
int b2 = 20;
cout << a2 % b2 << endl;
//int a3 = 10;
//int b3 = 0;
//cout << a3 % b3 << endl; //错误,两个数相除,除数不能为0,所以也不能进行取模运算
//double d1 = 3.14;
//double d2 = 1.1;
//cout << d1 % d2 << endl; //两个小数是不可以进行取模运算的
system("pause");
return 0;
}
1
10
前置、后置递增运算的实例如下所示。
#include<iostream>
using namespace std;
int main()
{
//1.前置递增
int a1 = 10;
++a1; //让变量+1
cout << "a1 = " << a1 << endl;
//2.后置递增
int b1 = 10;
b1++; //让变量+1
cout << "b1 = " << b1 << endl;
//3.前置和后置递增的区别
//前置递增:先让变量+1,然后进行表达式运算
int a2 = 10;
int b2 = ++a2 * 10;
cout << "a2 = " << a2 << endl;
cout << "b2 = " << b2 << endl;
//后置递增:先进行表达式运算,然后让变量+1
int a3 = 10;
int b3 = a3++ * 10;
cout << "a3 = " << a3 << endl;
cout << "b3 = " << b3 << endl;
system("pause");
return 0;
}
a1 = 11
b1 = 11
a2 = 11
b2 = 110
a3 = 11
b3 = 100
前置和后置递增的区别:
- 前置递增:先让变量+1,然后进行表达式运算;
- 后置递增:先进行表达式运算,然后让变量+1。
前置、后置递减运算的实例如下所示。
#include<iostream>
using namespace std;
int main()
{
//1.前置递减
int a1 = 10;
--a1; //让变量-1
cout << "a1 = " << a1 << endl;
//2.后置递减
int b1 = 10;
b1--; //让变量-1
cout << "b1 = " << b1 << endl;
//3.前置和后置递减的区别
//前置递减:先让变量-1,然后进行表达式运算
int a2 = 10;
int b2 = --a2 * 10;
cout << "a2 = " << a2 << endl;
cout << "b2 = " << b2 << endl;
//后置递减:先进行表达式运算,然后让变量-1
int a3 = 10;
int b3 = a3-- * 10;
cout << "a3 = " << a3 << endl;
cout << "b3 = " << b3 << endl;
system("pause");
return 0;
}
a1 = 9
b1 = 9
a2 = 9
b2 = 90
a3 = 9
b3 = 100
3. 赋值运算符
赋值运算符的作用: 用于将表达式的值赋给变量。
赋值运算符包括以下几个符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
= | 赋值 | a=2; b=3; | a=2; b=3; |
+= | 加等于 | a=0; a+=2; | a=2; |
-= | 减等于 | a=5; a-=3; | a=2; |
*= | 乘等于 | a=2; a*=2; | a=4; |
/= | 除等于 | a=4; a/=2; | a=2; |
%= | 模等于 | a=3; a%2; | a=1; |
实例如下所示。
#include<iostream>
using namespace std;
int main()
{
//赋值运算符
// 赋值:=
int a = 10;
a = 100;
cout << "a = " << a << endl;
// 加等于:+=
a = 10;
a += 2; // a = a + 2
cout << "a = " << a << endl;
// 减等于:-=
a = 10;
a -= 2; // a = a - 2
cout << "a = " << a << endl;
// 乘等于:*=
a = 10;
a *= 2; // a = a * 2
cout << "a = " << a << endl;
// 除等于:/=
a = 10;
a /= 2; // a = a / 2
cout << "a = " << a << endl;
// 模等于:%=
a = 10;
a %= 2; // a = a % 2
cout << "a = " << a << endl;
system("pause");
return 0;
}
a = 100
a = 12
a = 8
a = 20
a = 5
a = 0
4. 比较运算符
比较运算符的作用: 用于表达式的比较,并返回一个真值或假值。
C和C++ 语言的比较运算中, “真”用数字“1”来表示, “假”用数字“0”来表示。
比较运算符有以下符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
== | 相等于 | 4 == 3 | 0 |
!= | 不等于 | 4 != 3 | 1 |
< | 小于 | 4 < 3 | 0 |
> | 大于 | 4 > 3 | 1 |
<= | 小于等于 | 4 <= 3 | 0 |
>= | 大于等于 | 4 >= 1 | 1 |
实例如下所示。
#include<iostream>
using namespace std;
int main()
{
//比较运算符
// 相等于:==
int a = 10;
int b = 20;
cout << (a == b) << endl;
// 不等于:!=
cout << (a != b) << endl;
// 小于:<
cout << (a < b) << endl;
// 大于:>
cout << (a > b) << endl;
// 小于等于:<=
cout << (a <= b) << endl;
// 大于等于:>=
cout << (a >= b) << endl;
system("pause");
return 0;
}
0
1
1
0
1
0
5. 逻辑运算符
逻辑运算符的作用: 用于根据表达式的值返回真值或假值。
逻辑运算符有以下符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
&& | 与 | a && b | 如果a和b都为真,则结果为真,否则为假。 |
| | | 或 | a | | b | 如果a和b有一个为真,则结果为真,二者都为假时,结果为假。 |
! | 非 | !a | 如果a为假,则!a为真; 如果a为真,则!a为假。 |
逻辑与的实例如下所示。
#include<iostream>
using namespace std;
int main()
{
//逻辑运算符:与 &&
int a = 10; //在C++中,除了0都为真,所以a=10为真,即1
int b = 10;
cout << (a&&b) << endl;
a = 0;
b = 0;
cout << (a&&b) << endl;
a = 0;
b = 10;
cout << (a&&b) << endl;
system("pause");
return 0;
}
1
0
0
逻辑或的实例如下所示。
#include<iostream>
using namespace std;
int main()
{
//逻辑运算符:或 ||
int a = 10; //在C++中,除了0都为真,所以a=10为真,即1
int b = 10;
cout << (a || b) << endl;
a = 10;
b = 0;
cout << (a || b) << endl;
a = 0;
b = 0;
cout << (a || b) << endl;
system("pause");
return 0;
}
1
1
0
逻辑非的实例如下所示。
#include<iostream>
using namespace std;
int main()
{
//逻辑运算符:非 !
int a1 = 10; //在C++中,除了0都为真,所以a=10为真,即1
cout << !a1 << endl;
cout << !!a1 << endl;
system("pause");
return 0;
}
0
1
逻辑运算符的总结:
- 对于逻辑与运算:同真为真,其余为假;
- 对于逻辑或运算:同假为假,其余为真;
- 对于逻辑非运算:真变假,假变真。