解释static局部变量和static全局变量,给出实例
时间: 2023-11-12 16:05:53 浏览: 87
局部变量 与 全局变量
static局部变量是指在函数内部定义的变量,但它的生命周期不随函数调用的结束而结束,而是在整个程序执行期间都存在,只会被初始化一次。每次调用该函数时,都会沿用上一次该变量的值。static局部变量只能在定义它的函数内部访问。
示例:
```c++
#include <iostream>
using namespace std;
void foo() {
static int count = 0;
count++;
cout << count << endl;
}
int main() {
foo(); // 输出 1
foo(); // 输出 2
foo(); // 输出 3
return 0;
}
```
上述代码中,count是一个static局部变量,它的值会在每次调用foo函数时自增,并且在下次调用时沿用上一次的值。输出结果为1、2、3。
static全局变量是指在整个程序执行期间都存在的全局变量,与普通的全局变量不同的是,它的作用域仅限于定义它的文件中,在其他文件中无法访问。它也只会被初始化一次,在整个程序执行期间都存在。
示例:
```c++
#include <iostream>
using namespace std;
static int count = 0;
void foo() {
count++;
cout << count << endl;
}
int main() {
foo(); // 输出 1
foo(); // 输出 2
foo(); // 输出 3
return 0;
}
```
上述代码中,count是一个static全局变量,它在整个程序执行期间都存在,并且只会被初始化一次。输出结果为1、2、3。
阅读全文