[問題] static varibe & globe

看板C_and_CPP (C/C++)作者 (cola)時間16年前 (2010/04/28 04:29), 編輯推噓4(403)
留言7則, 7人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 我不懂static variable 跟 globe 的差別 有段程式碼是這樣 void fun() { intx=0; static int y=0; printf("%d %d",++x,y++); } int main() { fun(); fun(); fun(); teturn 0; } 我想問的是 為什麼x始終印出1 y則是1,2,3呢? 不是globe可變 static不變嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 119.77.253.108

04/28 04:53, , 1F
static 表示他下次再進這個func的時候會保留先前的值
04/28 04:53, 1F

04/28 05:04, , 2F
嗯!謝謝
04/28 05:04, 2F

04/28 06:39, , 3F
global 不是 globe
04/28 06:39, 3F

04/28 09:46, , 4F
y只有第一次會初始化成0
04/28 09:46, 4F

04/28 09:59, , 5F
x也只是單純的local var不是global var啊@_@"
04/28 09:59, 5F

04/28 10:12, , 6F
差別在 variable scope 的問題
04/28 10:12, 6F

04/28 10:45, , 7F
static只有該函式看得到,在記憶體的話兩者沒什麼分別
04/28 10:45, 7F
文章代碼(AID): #1Brqav6j (C_and_CPP)
文章代碼(AID): #1Brqav6j (C_and_CPP)