C++ static静态变量的作用(附带实例)
C++ 中的 static 变量是静态存储变量,定义变量时系统就会为其分配固定的存储单元,直至整个程序运行结束。我们接触过的全局变量即为 static 变量,它们存放在静态存储区中。
使用 static 关键字,可将变量声明成 static 变量。例如:
【实例】建立函数 click(),用于记录用户点击量。函数中定义一个静态变量 sum,用于记录点击次数。调用 5 次 click(),查看此时点击量是多少。代码如下:
第 5 行代码中,如果去除 static 关键字,则程序运行结果为:
使用 static 关键字,可将变量声明成 static 变量。例如:
static int a,b;
static float x,y;
static int a[3]={0,1,2};
static 变量属于静态存储方式,具有以下特点:
- 无论是静态全局变量,还是静态局部变量,其生存期均为整个 C++ 源程序运行期间。
- 静态全局变量在函数外定义,作用域是整个 C++ 源程序,即可在程序任意位置使用它。
- 静态局部变量的作用域与 auto 变量类似,在函数内定义,只能在函数中使用。离开函数后,尽管其值一直存在,但无法被使用。当再次调用函数时,可以继续使用它。
- 编译器会为静态局部变量赋予 0 值。
【实例】建立函数 click(),用于记录用户点击量。函数中定义一个静态变量 sum,用于记录点击次数。调用 5 次 click(),查看此时点击量是多少。代码如下:
#include <iostream>
using namespace std;
void click() // 定义 click() 函数,记录用户点击量
{
static int sum = 0; // 定义静态局部变量 sum,初始点击次数为 0
sum = sum + 1; // 点击次数加 1
cout << "此时点击量" << sum << endl; // 输出点击量
}
int main()
{
// 调用 5 次 click() 函数,模拟 5 次点击行为
click();
click();
click();
click();
click();
return 0;
}
程序运行结果为:
此时点击量1
此时点击量2
此时点击量3
此时点击量4
此时点击量5
第 5 行代码中,如果去除 static 关键字,则程序运行结果为:
此时点击量1
此时点击量1
此时点击量1
此时点击量1
此时点击量1
ICP备案:
公安联网备案: