您的位置:首页 > 编程语言 > C语言/C++

C++ 学习记录之静态变量static

2015-09-28 14:15 363 查看
对于静态变量还是有些不明白,就是说这个变量会保留每次运行结果的值而不是次次都初始化,如下代码

#include <iostream>
using namespace std;
int f(int a) //定义f函数,a为形参
{
auto int b=0; //定义b为自动变量
static int c=3; //定义c为静态局部变量
b=b+1;
c=c+1;
return a+b+c;
}

int main( )
{
int a=2,i;
for(i=0;i<3;i++)
cout<<f(a)<<" ";
cout<<endl;
return 0;
}
运行结果为:
7 8 9

先后3次调用f函数时,b和c的值如书中表4.1所示。
表 4.1 调用函数时自动变量和静态局部变量的值
第几次调用调用时初值调用结束时的值
自动变量b静态局部变量cbca + b+c
第1次03147
第2次04158
第3次05169
而c不设为static时运行结果如下:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: