运算符
算术/关系/逻辑/位运算符、自增自减、优先级
运算符
C++ 运算符和 C 基本一致,但多了几个现代特性:static_cast、范围 for 循环中的 auto、位运算与枚举。
学完本章你将: 掌握算术/关系/逻辑/位运算符、自增自减、static_cast。
基本运算符
cpp
#include <iostream>
int main() {
int a = 10, b = 3;
std::cout << a + b << "\n"; // 13
std::cout << a - b << "\n"; // 7
std::cout << a * b << "\n"; // 30
std::cout << a / b << "\n"; // 3 (整数除法)
std::cout << a % b << "\n"; // 1 (取余)
// 类型转换:静态转换(C++ 推荐)
double result = static_cast<double>(a) / b; // 3.33333
return 0;
}
自增自减 + 前置/后置
cpp
int a = 5;
int b = a++; // b=5, a=6(先用后加)
int c = ++a; // c=7, a=7(先加后用)
// 迭代器场景:前置 ++ 更高效(避免临时对象)
for (auto it = v.begin(); it != v.end(); ++it) { } // 推荐
位运算符
cpp
int a = 0b0101; // 5
int b = 0b0011; // 3
a & b // 1 按位与
a | b // 7 按位或
a ^ b // 6 按位异或
~a // 按位取反
a << 1 // 10 左移
a >> 1 // 2 右移
static_cast —— C++ 类型转换
cpp
// C 风格(不推荐——不安全,编译器不检查)
int x = (int)3.14;
// C++ 风格(推荐——编译器检查合理性)
int y = static_cast<int>(3.14);
// 其他 cast
// dynamic_cast —— 运行时检查的多态转换
// const_cast —— 移除/添加 const
// reinterpret_cast —— 位级别的重新解释(最危险)
💡 永远优先使用 C++ 风格的类型转换——它们更显眼、更受编译器检查。