看板 C_and_CPP 關於我們 聯絡資訊
1 #include <iostream> 2 using namespace std; 3 4 void func(void) 5 { 6 static int a = 0; 7 cout << a << endl; 8 a++; 9 } 10 11 int main() 12 { 13 for (int i = 0; i < 10; ++i) 14 func(); 15 16 return 0; 17 } code如上 結果印出 0 1 2 3 4 5 6 7 8 9 我想問的是 每次呼叫一次function 讀到這行static int a = 0; 會做什麼事情? 為什麼不會重新將 a = 0; ? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.51.126
johnlinvc:因為static 只會init 一次 10/20 15:48
priv:每次都要重新將a = 0的話,為什麼要用static?? 10/20 15:59
james732:如果你改成這樣 http://codepad.org/XakEyxNh 10/20 16:04
james732:意思就會差很多了 10/20 16:04
那我有個疑問 那static 加在 class 內的data member 為什麼不能用同樣的方式 Ex. Class A{ public: static int a = 0; }; ※ 編輯: k0783154 來自: 140.112.51.126 (10/20 16:11)
tropical72:這個意思才叫「差很多」,和上面那個意義有點不同。 10/20 16:12
priv:原po沒書可以看嗎 10/20 16:13
priv:翻到index找static 10/20 16:13
我有看到 但是我比較追根究柢 想說有沒有什麼邏輯的原因在 所以才來問 抱歉XD ※ 編輯: k0783154 來自: 140.112.51.126 (10/20 16:15)
x000032001:語法的東西...要用的時候想到他 就知道是幹嘛用的了 10/20 16:18
priv:因為你只問為什麼,會讓人以為你都不懂語法在講什麼 10/20 16:19
priv:這樣不可能直接和你講更深的東西 10/20 16:20
priv:大哉問的時候也不可能直接抄好幾頁的書回答你 10/20 16:24
priv:只能請你回去先看一下書 10/20 16:24
angleevil:static member Variable和 static Variable作用差很多 10/20 16:54
tropical72:如果問 static member 怎麼拆成 .h .cpp 還比較有意義. 10/20 17:24