[C++] 静态变量基本知识

来源:互联网 发布:超级理财软件官网 编辑:程序博客网 时间:2024/05/29 15:02
程序运行的结果是什么?

#include<iostream>
using namespace std;

void func()
{
static int a = 5;
a++;
printf("%d\n", a);
}

int main()
{
func();
func();
return 0;
}

按下ctrl+a查看答案
这段程序会输出6和7.
静态变量不会随着每一次的函数调用而产生一个副本,
所以初始化一次以后就不会再次初始化。
这就是说,基本类型的静态变量只会在初始化的时候赋为5,
而不是在每一次函数调用的时候重新初始化为5.
另外,基本类型的静态变量如果在初始化的时候不设值,就会被赋值为0初始化。
而对于动态生存期的变量而言,初始化不设值意味着初始值不确定(杂乱的值)。
0 0
原创粉丝点击