亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

定義靜態局部變量知道怎么做但是不知道意思看不懂?。?!誰幫我解釋一下嗎?

定義靜態局部變量知道怎么做但是不知道意思看不懂?。?!誰幫我解釋一下嗎?

C C++
悶a 2017-05-03 19:54:07
#include <stdio.h>void fn(){? ? static int x = 1; ? //定義靜態局部變量? ? x*=2; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? printf("x=%d\n",x); ? ??}int main(){? ? int i;? ? for(i=0;i<5;i++)? ? {? ? ? ? fn(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?這里什么意思???為什么會出現那樣的結果????????????????????????????????????????????????????????????????為什么刪除啦上面的x*=2答案就會全變成1!? ? }? ? extern int x; ? ? ?//調用外部變量? ? printf("x=%d\n",x);? ? getchar();}int x=100;
查看完整描述

3 回答

已采納
?
ruibin

TA貢獻358條經驗 獲得超213個贊

你可以把靜態變量理解為掛載車子外面的東西。函數調用完畢后會清理局部變量,就像車子用完之后我們清理一下車子內部。但是,由于靜態變量是掛在車子外面的,所以不會被清理。也就是說static int x = 1;就像定義在外面的int x = 1;差不多,不過外部不能訪問。 ?以后你理解內存泄露,閉包哪些東西就懂了?,F在就記住行了。

查看完整回答
2 反對 回復 2017-05-03
  • 悶a
    悶a
    哦哦哦好像大概懂了謝謝你啦??!
?
ruibin

TA貢獻358條經驗 獲得超213個贊

#include <stdio.h>

int x = 1; ? //定義靜態局部變量

void fn()

{

? ?

? ? x*=2; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? printf("x=%d\n",x); ? ??

}


int main()

{

? ? int i;

? ? for(i=0;i<5;i++)

? ? {

? ? ? ? fn(); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? }

? ? extern int x; ? ? ?//調用外部變量

? ? printf("x=%d\n",x);

? ? getchar();

}

//int x=100;


結果一樣。

查看完整回答
1 反對 回復 2017-05-03
  • 3 回答
  • 0 關注
  • 1527 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號