在C++编程中,运算符是处理数据和逻辑判断的基础工具。它们就像数学公式中的符号,帮助我们对变量、常量进行计算和比较。本节将从最基础的算术、比较和逻辑运算符入手,用简单易懂的方式为初学者详解这些核心语法。
一、什么是运算符?¶
运算符是告诉编译器对数据进行特定操作的符号。例如,+ 是加法运算符,== 是等于比较运算符。C++提供了多种运算符,我们先从最常用的三类开始学习:算术运算符(处理数值计算)、比较运算符(判断大小关系)和逻辑运算符(组合条件判断)。
二、算术运算符¶
算术运算符用于对数值进行加减乘除等基本运算,主要包括以下几种:
1. 基本算术运算符¶
| 运算符 | 名称 | 作用 | 示例(假设a=5,b=3) | 结果 |
|---|---|---|---|---|
+ |
加法 | 两个数相加 | a + b |
8 |
- |
减法 | 第一个数减第二个数 | a - b |
2 |
* |
乘法 | 两个数相乘 | a * b |
15 |
/ |
除法 | 第一个数除以第二个数 | a / b |
1 |
% |
取模 | 第一个数除以第二个数的余数 | a % b |
2 |
注意:
- 除法/:若操作数都是整数(如5/2),结果会截断小数部分(只保留整数);若有浮点数(如5.0/2),则保留小数(结果为2.5)。
- 取模%:仅用于整数,结果是“商的整数部分”后的余数(余数符号与被除数一致)。例如:-5 % 3 = -2,5 % -3 = 2。
2. 自增/自减运算符(++、–)¶
自增(++)和自减(--)是特殊的算术运算符,用于将变量的值加1或减1。它们有“前置”和“后置”两种用法,区别在于先操作还是后操作:
-
前置++:先加1,再使用变量值。
语法:++变量名
示例:int a = 1; ++a;→a变为2,此时使用a的值为2。 -
后置++:先使用变量当前值,再加1。
语法:变量名++
示例:int a = 1; int b = a++;→b先取a的当前值1,然后a变为2。
示例对比:
int x = 3;
int y = ++x; // 前置++:x先+1变为4,y取x的值4
cout << "x=" << x << ", y=" << y << endl; // 输出:x=4, y=4
int m = 3;
int n = m++; // 后置++:n先取m的当前值3,m再+1变为4
cout << "m=" << m << ", n=" << n << endl; // 输出:m=4, n=3
三、比较运算符¶
比较运算符用于判断两个值的关系,结果是布尔值(true或false),常用于条件判断(如if语句)。主要包括:
| 运算符 | 名称 | 作用 | 示例(假设a=5,b=3) | 结果 |
|---|---|---|---|---|
== |
等于 | 判断两个值是否相等 | a == b |
false |
!= |
不等于 | 判断两个值是否不相等 | a != b |
true |
> |
大于 | 判断左边值是否大于右边值 | a > b |
true |
< |
小于 | 判断左边值是否小于右边值 | a < b |
false |
>= |
大于等于 | 判断左边值是否大于等于右边值 | a >= b |
true |
<= |
小于等于 | 判断左边值是否小于等于右边值 | a <= b |
false |
注意:
- 比较运算符返回的是布尔值(true或false),在C++中可以用cout输出(实际输出为1或0,但bool类型会被解释为true/false)。
- 不要混淆赋值运算符=和等于比较==:=是赋值(如a = 5),==才是判断是否相等(如a == 5)。
示例:
int a = 5, b = 5;
bool equal = (a == b); // true(5等于5)
bool notEqual = (a != b); // false(5不等于5?不,这里a和b都是5,所以是false)
bool greater = (a > b); // false(5不大于5)
cout << "equal=" << equal << ", notEqual=" << notEqual << endl; // 输出:equal=1, notEqual=0
四、逻辑运算符¶
逻辑运算符用于组合多个条件,进行“与”“或”“非”的逻辑判断,结果仍是true或false。
1. 逻辑与(&&)¶
- 作用:两个条件都为
true时,结果才为true;否则为false。 - 短路特性:若左侧条件为
false,右侧条件不再执行(节省计算资源)。
示例:
bool result = (3 > 1) && (5 > 2); // true && true → true
bool result2 = (3 < 1) && (5 > 2); // false && true → false
2. 逻辑或(||)¶
- 作用:至少一个条件为
true时,结果为true;两个都为false时才为false。 - 短路特性:若左侧条件为
true,右侧条件不再执行。
示例:
bool result = (3 > 1) || (5 < 2); // true || false → true
bool result2 = (3 < 1) || (5 < 2); // false || false → false
3. 逻辑非(!)¶
- 作用:取反操作,
true变false,false变true。
示例:
bool result = !(3 > 1); // !true → false
bool result2 = !(5 == 5); // !false → true
逻辑运算符组合示例¶
int age = 18;
bool isAdult = (age >= 18) && (age <= 60); // true(18岁且不超过60岁)
bool isStudentOrAdult = (age < 18) || (age >= 60); // false(18岁既不是学生也不是老人)
bool isNotAdult = !(age >= 18); // false(18岁是成年人)
cout << "isAdult=" << isAdult << ", isStudentOrAdult=" << isStudentOrAdult << endl;
五、总结¶
运算符是C++编程的基础工具,掌握算术、比较和逻辑运算符是后续学习的关键:
- 算术运算符用于数值计算,重点注意/(整数除法截断小数)和%(取模仅对整数),以及++/--的前置后置区别。
- 比较运算符返回布尔值,用于判断大小关系,需注意==(等于比较)和=(赋值)的区别。
- 逻辑运算符用于组合条件,&&(与)和||(或)有短路特性,!(非)用于取反。
通过以上示例和解释,初学者可以逐步理解运算符的使用场景。多写代码练习(如修改示例中的数值观察结果),能更快掌握这些基础语法。