C/C++中static关键字的作用

作用一:隐藏

作为变量和函数的前缀

使作用的变量或函数对其他源文件起到隐藏、避免命名冲突的作用。

作用二:完成一次初始化

作为函数内局部变量的前缀

1、与全局变量相同,都位于静态数据区中,不同的是:该变量全局不可见,出了函数,外部看不到。

2、使该变量只进行一次初始化,并且在函数执行完毕后,仍然存储该变量的值。

例如:

#include

int count(){

static int count = 10;

//变量count只被初始化一次,值为10

return count--;

//接下来,每次调用一次count(),count值会自减1,并且保存最后一次的值,即使函数执行完毕,该值仍旧存储在函数内,只不过外部无法访问罢了。

}

int main(void)

{

for(int i=0 ;i < 5; ++i)

printf("%d\n", count());

return 0;

}

你可能感兴趣的:(C/C++中static关键字的作用)