c语言static变量
时间: 2023-08-24 18:09:31 浏览: 96
c语言static
C语言中的static变量是一种具有静态存储持续性的变量。它们在程序执行期间保持其值不变,而不像自动变量那样在每次函数调用时重新初始化。
static变量可以在函数内部或文件作用域内声明。在函数内部声明的static变量仅在该函数的作用域内可见,但其值在函数调用之间保持不变。在文件作用域内声明的static变量在整个文件中可见,并且其作用范围限定为该文件。
静态变量的生命周期与程序执行期间的整个时间一致,并且在程序启动时被初始化。如果没有显式地初始化静态变量,它们将被自动初始化为0(对于静态整数类型)或空指针(对于静态指针类型)。
以下是一个示例,演示了如何在函数内部和文件作用域内声明和使用静态变量:
```c
#include <stdio.h>
void foo() {
static int count = 0; // 在函数内部声明静态变量
count++;
printf("Count: %d\n", count);
}
int main() {
foo();
foo();
foo();
static int x = 10; // 在文件作用域内声明静态变量
printf("Value of x: %d\n", x);
return 0;
}
```
输出结果为:
```
Count: 1
Count: 2
Count: 3
Value of x: 10
```
这个例子中,函数`foo()`内的静态变量`count`在每次函数调用时保持其值不变。而在`main()`函数中,静态变量`x`在整个程序执行期间保持其值不变。
阅读全文