B21
自增自减与复合赋值
引入
章前总览 ++ / -- 让变量加减 1;+= %= 等是“自己运算后再赋给自己”的省写。前置、后置顺序不同,结果可能不同。
本节要点:
- 后置 ++:先用旧值,再加 1
- 前置 ++:先加 1,再用新值
- 复合赋值:z += k ⇔ z = z + k
1 C1. 前置 ++ 与后置 ++
操作数必须是变量,不能是常量或普通表达式。
对比示例
int a = 7, b;
b = a++; // 后置:先 b=7,再 a→8
cout << a << " " << b << endl; // 8 7
a = 7;
b = ++a; // 前置:先 a→8,再 b=8
cout << a << " " << b << endl; // 8 8
--同理:后置先用再减,前置先减再用。- 单独写
a++;时,前置后置效果一样,都是 a 加 1。
易错点
c = a ++ b;不合法——++ 不能夹在两个变量中间这样写。- 不要写成
a ** b(不是乘方)。
2 C2. 复合赋值运算符
z += k 就是 z = z + k。同理有 -= *= /= %=。
右边像带括号
z -= 5+2等价于z = z - (5+2),不是z - 5 + 2。- 例:z 原为 13,则
z -= 5+2后 z=6。
常见写法
z += k; // z = z + k
z %= 3600; // z = z % 3600
a *= 3; // a = a * 3
小结
做题时先分清“先改还是后改”。
b = a++; // b 拿旧 a
b = ++a; // b 拿新 a
z += k; // 自己加上 k
✓
里程碑达成:
下一节用 / 与 % 解三道 GESP 真题:买书、休息时间、考试星期几。