輸出下列代碼的值
#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修飾的全局變量,隻能在該檔案中使用