#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
}
结论:函数内静态变量系统会自动赋初始值,并且只能在该函数内进行修改
原文链接: https://www.cnblogs.com/qiumingcheng/p/15519835.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/214754
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!