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