→ james732:對 static 的初始化只會做一次 01/29 21:48
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