📄 一句话概括
第二章把"数据"备齐了,这一章开始加工数据。运算符就是数据的"加工动作"——加、减、比大小、改值、钻到二进制里拧螺丝。本节是全章的总览地图:9 类运算符先认个脸,后面 3.1.1~3.1.9 一类一类细讲。
一、运算符是什么
运算符(operator)= 告诉编译器"要对数据做什么动作"的符号。
拿生活里的东西打比方:
| 生活里的 | 程序里的 |
|---|---|
| 食材 | 操作数(变量、常量、表达式) |
| 刀、锅、秤、搅拌器 | 运算符 |
| 一道菜 | 表达式的结果 |
a + b 里,a、b 是操作数(被加工的食材),+ 是运算符(加工动作),整体 a + b 是一个表达式(做完的这道菜,有值有类型——这个概念 3.3 节展开)。
关键认知:每个运算符都有"参加条件"和"产出结果"。
- 参加条件:
%只能对整数用,浮点数不行(3.1.1 讲为什么) - 产出结果:
7 > 3算出来的不是"对",是bool值1(3.1.2 讲)
搞错这两个,报错和 bug 都是从这儿来的。
二、本章 9 类运算符地图
| 分组 | 运算符 | 干什么 | 细讲 |
|---|---|---|---|
| 算(出数值) | 算术 | + - * / % |
3.1.1 |
| 移位 | << >>(二进制整体搬家) |
3.1.6 | |
| 比(出真假) | 关系 | > < >= <= == != |
3.1.2 |
| 逻辑 | &&(且)\|\|(或)!(非) |
3.1.3 | |
| 管(改内存) | 赋值 | = 及 += -= 等复合 |
3.1.4 |
| 位 | & \| ^ ~(按二进制位操作) |
3.1.5 | |
| 问(问信息) | sizeof | 问"占几个字节" | 3.1.7 |
| 选(挑路走) | 条件 | 条件 ? 甲 : 乙 |
3.1.8 |
| 排(串着算) | 逗号 | 从左到右算完,取最后一个 | 3.1.9 |
四句口诀记分组:算出数值、比出真假、管住内存、问出信息。
为什么现在学它们? 后面第 4 章的 if 判断、第 5 章的 for 循环,条件全是靠"关系 + 逻辑"运算符搭出来的;循环计数靠"赋值 + 算术"。这一章是流程控制的地基——地基没打好,第 4 章起每一步都晃。
三、30 秒实验:先摸一遍手感
不用全懂,先把地图跑一遍。在 Dev-C++ 里新建工程,敲:
#include <iostream>
using namespace std;
int main() {
cout << 7 / 2 << endl; // 算术:输出 3(整数除法,回看 2.4.1)
cout << (7 > 3) << endl; // 关系:输出 1(真)
cout << ((7 > 3) && (2 > 5)) << endl; // 逻辑:输出 0(一真一假,且为假)
int a = 10;
a += 5; // 赋值:a 变成 15
cout << a << endl;
cout << sizeof(int) << endl; // 问:输出 4(int 占 4 字节)
return 0;
}
看到什么算成功:依次输出 3、1、0、15、4。看不懂哪一行,就等着对应小节细讲——这正是地图的用法。
四、常见误区
- "运算符就那几个,小学都会"——
%(取余)、==(比较)、&(位与)都长着一张"熟脸",干的却是新活。最熟的符号反而最容易出错的活。 - "先记住再学"——不用背,本章结束这张表你会自然记住。现在只需知道:遇到一个符号,先问它"参加条件是什么、结果是啥类型"。
- "
7 > 3输出的是'对'"——程序里没有"对"这个字,输出的是1(bool 真)。真假就是数字。
自测三问(点开对答案)
1. `a + b` 里哪个是运算符、哪些是操作数?——`+` 是运算符;`a`、`b` 是操作数。 2. `sizeof` 属于哪个分组?——**"问"**:问信息(问占几个字节),不改变任何数据。 3. 为什么说这一章是第 4 章 `if` 判断的地基?——`if` 的条件就是**关系运算符 + 逻辑运算符**搭出来的表达式,条件算出 `true` 就执行。- ☐ 3.1.1 算术运算符(下一节)
相关笔记
- 小结 —— 上一章"数据"备齐,本章开始加工
- 数值类型 —— 整数除法
5/2=2的伏笔在本章兑现 - 🔷 C++基础 · 索引 —— 全课路线图