C++初学者关于static的理解

来源:百度知道 编辑:UC知道 时间:2024/06/07 19:17:34
#include <iostream.h>
void fun()
{
static int a=2;
/*如果把static int a=2;这句改成
static int a;
a=2;
或者 static int a;
三种结果都不一样,为什么*/
a+=2;cout<<a;
}
void main()
{
int cc;
for(cc=1;cc<=4;cc++) fun();
cout<<"\n";
}

1. static int a=2 初始化一次 初始值为2 每次循环+2
2. static int a;a=2; 每次循环都初始化为2
3 static int a; 未初始化 编译器默认赋值0

1.static int a=1; 在整个程序的运行过程中,静态变量的初始化只进行一次
2.static int a; 静态变量没有初始化,a初值为0
3.int a=1;在整个程序的运行过程中,动态变量的赋初值可以进行多次

反正你记好一条原则 经过static修饰过的标识符 在程序结束之前 它的量是累加的 即使你重新定义了一遍 就像在循环里一样 它会保留上次运算得到的值