1.将static变量定义在函数体内,static函数的作用范围为该函数体,每次保存上一次的值。
int fun1(int a)
{
static int b=0;
b++;
return a+b;
}
int main()
{
int i;
for(i=0;i<3;++i)
cout<<fun1(i)<<endl;
}
输出结果为1,3,5.
2.若static变量定义在函数体外,一个文件内,static的作用域为文件内。
static int b=0;
int fun1(int a)
{
b++;
return a+b;
}
int fun2(int a)
{
b++;
return a+b;
}
int main()
{
int i;
for(i=0;i<3;++i)
cout<<fun1(i)<<endl;
for(i=0;i<3;++i)
cout<<fun2(i)<<endl;
}
输出结果为:1,3,5,4,6,8.
3.在类中,static成员变量属于整个类拥有
4.在类中的static成员函数归属于整个类,但不是任何对象的组成部分,static成员函数没有this指针。通过作用域或者对象,引用或者指向该类类型对象的指针间接调用。