用static和用const修饰变量的区别
时间: 2025-01-29 17:17:56 浏览: 50
在编程语言中,`static`和`const`是用来修饰变量的关键字,但它们的作用和用途有所不同。
1. **`static`修饰符**:
- **作用**:`static`关键字用于声明静态变量。静态变量在程序的生命周期内只被初始化一次,并且它们的值在函数调用之间保持不变。
- **作用域**:静态变量在类的所有实例之间共享,而不是每个实例都有自己的副本。
- **用途**:通常用于计数器、全局变量等需要共享数据的场景。
2. **`const`修饰符**:
- **作用**:`const`关键字用于声明常量。常量在声明时必须初始化,并且其值在程序运行期间不能被修改。
- **作用域**:常量在定义它的作用域内有效,可以是全局的也可以是局部的。
- **用途**:通常用于定义固定不变的数值,如数学常数、配置参数等。
**区别**:
- **可变性**:`static`变量可以被修改,而`const`变量不能被修改。
- **初始化**:`static`变量在程序启动时初始化,`const`变量在声明时必须初始化。
- **作用域**:`static`变量在类的所有实例之间共享,`const`变量在定义它的作用域内有效。
示例代码(以C++为例):
```cpp
#include <iostream>
class Example {
public:
static int staticVar;
const int constVar;
Example(int value) : constVar(value) {}
};
int Example::staticVar = 0;
int main() {
Example obj1(10);
Example obj2(20);
// 修改静态变量
Example::staticVar = 5;
std::cout << "Static Var: " << Example::staticVar << std::endl; // 输出5
// 尝试修改常量变量(编译错误)
// obj1.constVar = 15; // 错误
return 0;
}
```
阅读全文
相关推荐


















