c语言中的static变量
一:
int example(int a)
{
int b = 0;
static int c = 3;
b = b + 1; // b == 1, 1, 1
c = c + 1; // c = 4, 5, 6
return(a+b+c); // 7, 8, 8
}
静态变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值。
以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。(如上例所示)
对于静态变量,若未赋初值,则编译时自动赋初值0(对数值型变量)或空字符(对字符型变量)。
二:
有时在程序设计时希望魔偶写部分变量只限于被本文件引用,而不能被其他文件引用。这时可以在定义外部变量时加一个static声明。