static c++。。。。。。。。。。。

有一个函数:
void fun()
{
static int i=0;
cout<<"i="<<++i<<endl;
}
int main()
{
for(x=0;x<10;x++)
fun();
}
这里static int i=0;语句执行之后i的值就不能被修改了吗

可以修改,这里的static定义了一个静态变量,初始值为0。和C语言里面的static是一样的。
static变量只在程序初始运行时初始化一次,之后就会保存前一次运行的状态,例如第一次调用fun时,i自增变为1。则下一次调用fun时,i从1开始自增,变为2,以此类推

静态变量的赋值i=0的操作只执行一次

static相当于全局变量

可以被修改,想让变量只能初始化的时候赋值的关键字是const