#include <iostream>
using namespace std;
int& GetStaticVar() {
static int a = 100;
a++;
return a;
}
int main(int argc, char const* argv[]) {
cout << GetStaticVar() << endl; // output:101
int c = GetStaticVar();
cout << c << endl; // output:102
c = c + 200;
cout << c << endl;
// 雖然函數返回的是局部靜態變量的引用,上一步驟也對該變量進行了改變,
// 但是實際上,在再次調用該函數的時候,該引用變量的值,並沒有受到外部對該變量的修改而改變
cout << GetStaticVar() << endl; // output:103
}
結論:函數內靜態變量系統會自動賦初始值,並且只能在該函數內進行修改