一、C语言
1.修饰局部变量
修饰的局部变量自动初始化为0,且只初始化一次。
存放在全局数据区的静态变量区,其生命周期为从定义直到程序运行结束以后才释放(增长生命周期)。
2.修饰全局变量
1.static修饰的全局变量存放在全局数据区的静态变量区。初始化的时候自动初始化为0。
2.这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。
#include<stdio.h>
#include<stdlib.h>
static int s_g_tmp;
void test()
{
static int count;
count++;
printf("%d ", count);
}
int main()
{
printf("%d\n",s_g_tmp);
test();
test();
test();
system("pause");
return 0;
}
3.修饰函数
这个函数的只能在本文件中调用,不能被其他文件调用(缩小函数作用域)。
二、C++
c++中static修饰类的成员变量(成员函数)时,这个成员变量(成员函数)可以被任何一个对象访问修改,也可直接使用类名访问。
class Test
{
public:
static int count;
Test()
{
count++;
}
};
int Test::count = 0;//静态成员函数必须在外面初始化
int main()
{
Test T1;
Test T2;
Test T3;
cout << T1.count << endl;
cout << Test::count << endl;
system("pause");
return 0;
}