看板 C_and_CPP 關於我們 聯絡資訊
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
james732:對 static 的初始化只會做一次 01/29 21:48