输出下列代码的值
#include<iostream>
#include<stdio.h>
int x = 4;
void incre()
{
static int x = 1;
x *= x + 1;
printf("%d\n",x);
}
void fun()
{
printf("%d\n",x);
}
int main()
{
for(int i = 1; i < 4; i++)
{
incre();
}
fun();
return 0;
}
答案是2 6 42 4
解释:
1. 静态局部变量只在该函数内使用,不能在函数外使用,如果局部变量和全局变量名称相同,则全局变量在该函数体内被屏蔽
2. static变量只初始化一次
3. static修饰的全局变量,只能在该文件中使用