[問題] static in function

看板C_and_CPP (C/C++)作者 ( )時間14年前 (2011/10/20 15:46), 編輯推噓1(1013)
留言14則, 6人參與, 最新討論串1/1
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

10/20 15:48, , 1F
因為static 只會init 一次
10/20 15:48, 1F

10/20 15:59, , 2F
每次都要重新將a = 0的話,為什麼要用static??
10/20 15:59, 2F

10/20 16:04, , 3F
如果你改成這樣 http://codepad.org/XakEyxNh
10/20 16:04, 3F

10/20 16:04, , 4F
意思就會差很多了
10/20 16:04, 4F
那我有個疑問 那static 加在 class 內的data member 為什麼不能用同樣的方式 Ex. Class A{ public: static int a = 0; }; ※ 編輯: k0783154 來自: 140.112.51.126 (10/20 16:11)

10/20 16:12, , 5F
這個意思才叫「差很多」,和上面那個意義有點不同。
10/20 16:12, 5F

10/20 16:13, , 6F
原po沒書可以看嗎
10/20 16:13, 6F

10/20 16:13, , 7F
翻到index找static
10/20 16:13, 7F
我有看到 但是我比較追根究柢 想說有沒有什麼邏輯的原因在 所以才來問 抱歉XD ※ 編輯: k0783154 來自: 140.112.51.126 (10/20 16:15)

10/20 16:18, , 8F
語法的東西...要用的時候想到他 就知道是幹嘛用的了
10/20 16:18, 8F

10/20 16:19, , 9F
因為你只問為什麼,會讓人以為你都不懂語法在講什麼
10/20 16:19, 9F

10/20 16:20, , 10F
這樣不可能直接和你講更深的東西
10/20 16:20, 10F

10/20 16:24, , 11F
大哉問的時候也不可能直接抄好幾頁的書回答你
10/20 16:24, 11F

10/20 16:24, , 12F
只能請你回去先看一下書
10/20 16:24, 12F

10/20 16:54, , 13F
static member Variable和 static Variable作用差很多
10/20 16:54, 13F

10/20 17:24, , 14F
如果問 static member 怎麼拆成 .h .cpp 還比較有意義.
10/20 17:24, 14F
文章代碼(AID): #1Edz74zO (C_and_CPP)
文章代碼(AID): #1Edz74zO (C_and_CPP)