可以使用以下语句来声明一个静态变量count
:
static int count = 0;
static
是一个关键字。执行离开函数时,静态变量不会被销毁。静态变量仅在程序开始时初始化一次。静态变量仅在包含其声明的函数内可见,它本质上是一个全局变量。如果未指定初始值,则默认情况下所有静态变量都初始化为0
。
以下代码显示了静态变量和自动变量之间的区别。
示例代码
#include <stdio.h>
// 函数声明
void test1(void);
void test2(void);
int main(void)
{
for (int i = 0; i < 5; ++i)
{
test1();
test2();
}
system("pause");
return 0;
}
// test1函数带有自动变量
void test1(void)
{
int count = 0;
printf("test1 count = %d\n", ++count);
}
// test2函数带有静态变量
void test2(void)
{
static int count = 0;
printf("test2 count = %d\n", ++count);
}
执行上面示例代码,得到以下代码:
test1 count = 1
test2 count = 1
test1 count = 1
test2 count = 2
test1 count = 1
test2 count = 3
test1 count = 1
test2 count = 4
test1 count = 1
test2 count = 5
count
变量在上面的代码的两个函数中定义,自动变量count
在函数test1()
中声明,静态变量count
在函数test2()
中声明。