const和static有什么区别
时间: 2023-11-30 16:02:57 浏览: 96
const和static
`const` 和 `static` 都是关键字,但是它们的作用不同。
`const` 用于定义常量,表示其值不可改变。常量可以定义在函数内部或者外部,对于函数内部定义的常量,其作用域只在该函数内部有效;对于函数外部定义的常量,其作用域在整个文件内部有效。例如:
```c++
const int MAX_VALUE = 100;
void foo() {
const int MIN_VALUE = 0;
// ...
}
```
在上面的例子中,`MAX_VALUE` 是一个函数外部定义的常量,`MIN_VALUE` 是一个函数内部定义的常量。
`static` 用于限定变量或函数的作用域,表示其只在当前文件内部有效。对于变量来说,`static` 可以用于定义静态局部变量或者静态全局变量。静态局部变量的生命周期与程序的生命周期相同,只会被初始化一次;静态全局变量的作用域和生命周期都被限定在当前文件内部。例如:
```c++
void foo() {
static int count = 0;
count++;
// ...
}
static int global_count = 0;
```
在上面的例子中,`count` 是一个静态局部变量,`global_count` 是一个静态全局变量。在 `foo` 函数中,`count` 的值会在每次函数被调用时累加,而 `global_count` 的作用域只在当前文件内部有效。
总的来说,`const` 和 `static` 用途不同,但都是 C/C++ 中很常用的关键字。
阅读全文