3 回答

TA貢獻(xiàn)358條經(jīng)驗(yàn) 獲得超213個(gè)贊
你可以把靜態(tài)變量理解為掛載車(chē)子外面的東西。函數(shù)調(diào)用完畢后會(huì)清理局部變量,就像車(chē)子用完之后我們清理一下車(chē)子內(nèi)部。但是,由于靜態(tài)變量是掛在車(chē)子外面的,所以不會(huì)被清理。也就是說(shuō)static int x = 1;就像定義在外面的int x = 1;差不多,不過(guò)外部不能訪問(wèn)。 ?以后你理解內(nèi)存泄露,閉包哪些東西就懂了。現(xiàn)在就記住行了。

TA貢獻(xiàn)358條經(jīng)驗(yàn) 獲得超213個(gè)贊
#include <stdio.h>
int x = 1; ? //定義靜態(tài)局部變量
void fn()
{
? ?
? ? x*=2; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? printf("x=%d\n",x); ? ??
}
int main()
{
? ? int i;
? ? for(i=0;i<5;i++)
? ? {
? ? ? ? fn(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? }
? ? extern int x; ? ? ?//調(diào)用外部變量
? ? printf("x=%d\n",x);
? ? getchar();
}
//int x=100;
結(jié)果一樣。
- 3 回答
- 0 關(guān)注
- 1514 瀏覽
添加回答
舉報(bào)