易百教程

使用静态变量

函数中使用的变量是函数的局部变量。使用它们的值,然后在函数完成时丢弃它们。

#include <stdio.h> 

void proc(void);

int main() {
    puts("First call");
    proc();
    puts("Second call");
    proc();
    system("pause");
    return(0);
}

void proc(void) {
    int a;

    printf("The value of variable a is %d
", a);
    printf("Enter a new value: ");
    scanf("%d", &a);
}

proc()函数中的变量a不保留值。该变量仅由scanf()函数初始化。

修改源代码:

#include <stdio.h> 

void proc(void);

int main() {
    puts("First call");
    proc();
    puts("Second call");
    proc();
    system("pause");
    return(0);
}

void proc(void) {
    static int a; // 添加 static 
    printf("The value of variable a is %d
", a);
    printf("Enter a new value: ");
    scanf("%d", &a);
}

执行上面示例代码,得到以下结果:

First call
The value of variable a is 0
Enter a new value: 234
Second call
The value of variable a is 234
Enter a new value: 123

由于变量声明为static,因此在函数调用之间保留其值。如果每次调用函数时都需要保留其值,则需要将变量声明为static