[問題] 對static的一點疑問

看板C_and_CPP (C/C++)作者 (Sylvanas)時間16年前 (2009/01/29 21:47), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/2 (看更多)
1 #include <iostream> 2 using namespace std; 3 4 size_t count_calls() 5 { 6 static size_t ctr = 0; 7 return ++ctr; 8 } 9 int main() 10 { 11 12 for (size_t i = 0; i != 10; ++i) 13 cout << count_calls() << endl; 14 15 } 這樣的程式跑出來的結果為什麼會是 1 2 3 4 5 6 7 8 9 10 我以為會是 1 1 1 1 1 1 1 1 1 1 不是每次呼叫函數的時候都被 = 0了嗎? 我知道static size_t ctr是一直存在的 是不是宣告、定義不包含賦值呢? 不好意思問這麼新手的問題,因為書上沒有說的很清楚 麻煩大家了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.161.222.220

01/29 21:48, , 1F
對 static 的初始化只會做一次
01/29 21:48, 1F
文章代碼(AID): #19WREF-c (C_and_CPP)
文章代碼(AID): #19WREF-c (C_and_CPP)