静态变量

在程序执行前系统就为之静态分配了存储空间的变量,只初始化一次。用static修饰,无显式初始化时默认为0,生命周期贯穿整个运行时间,即整个程序完全结束。 静态全局变量作用域在当前文件,非静态全局变量可通过extern在当前文件外访问.

静态变量存储在静态存储区,函数参数储存在栈中,所以静态变量不能作为形参。

#include 
void funccall() {    
    static int m = 0;    
    printf("%d\n", m); 
    m++;
}

int main(int argc, char * const argv[]) 
{    
    funccall(); // 输出0    
    funccall(); // 输出1    
    funccall(); // 输出2    
    return 0;
}

 

你可能感兴趣的:(c/c++)