✅ 1. const —— 常量修饰符
📌 作用:
- 表示不可修改的值。
- 可用于变量、函数参数、函数返回值、类成员函数。
📘 示例:
const int a = 10; // 不可修改
void func(const int x); // 传参时不修改 x
int getValue() const; // 常成员函数,不能修改成员变量
✅ 常见用法:
| 用法 |
说明 |
const int a |
声明常量,不可被修改 |
const int* p |
指针指向的内容不可变 |
int* const p |
指针本身不可变 |
const int* const p |
指针和指向的内容都不可变 |
✅ 2. constexpr —— 编译时常量
📌 作用:
- 表示值在编译时就能确定。
- 更强的
const,可用于变量、函数、构造函数等。
📘 示例:
constexpr int square(int x) { return x * x; }
int arr[square(3)]; // OK,数组大小必须是常量
⚠️ 限制:
- 所有
constexpr 函数必须是纯函数(不依赖运行时状态)。
✅ 3. static —— 静态修饰符
📌 作用因上下文而异: