易百教程

静态变量

可以使用以下语句来声明一个静态变量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()中声明。