作者darklady (Sylvanas)
看板C_and_CPP
标题[问题] 对static的一点疑问
时间Thu Jan 29 21:47:58 2009
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
1F:→ james732:对 static 的初始化只会做一次 01/29 21:48