C++学习笔记系列2-14
2026/6/15 12:53:52 网站建设 项目流程

static变量

static变量又称为“静态变量”,它和auto变量一样,也是写在变量声明的最前面。如:

static int i = 10;

静态变量可以分为:静态全局变量、静态局部变量2种类型,静态全局变量声明在函数外部,静态局部变量则在函数内部。他们有一个明显的特点,即:声明一次,永久使用。

静态变量的优缺点:

优点:静态变量只初始化一次,数据一直保留,默认值为:0或空值

缺点:静态变量会一直占用内存空间,直到程序运行结束。

#include <iostream>
using namespace std;
static int b; // 此处未赋值,编译器默认赋值为:0
void PuTong()
{
int a = 0;
cout<<"普通变量:"<< a <<endl;
++a;
} //普通函数内部的变量,在每次调用时都会被从新创建并赋值


void JingTaiQuanJu()
{
cout<<"静态全局变量:"<< b <<endl;
b++;
} //使用了静态全局变量 b ,只初始化一次,之后再调用这个函数,则在原基础上递增


void JingTaiJuBu()
{
static int c = 1;
cout<<"静态局部变量:"<< c <<endl;
c++;
} //使用了静态局部变量,和静态全局变量一样。
int main()
{
PuTong();
PuTong();

JingTaiQuanJu();
JingTaiQuanJu();

JingTaiJuBu();
JingTaiJuBu();
}

输出:普通变量:0

普通变量:0

静态全局变量:0

静态全局变量:1

静态局部变量:1

静态局部变量:2

通过以上代码,我们看到静态变量和普通变量的区别,静态变量,无论全局还是局部,都只要一次初始化,之后便在原有基础上进行改变,而普通变量是不具备这个能力的。正因如此,静态变量更适合做一些统计数据的函数因子。

静态全局变量和全局变量的区别:

全局变量:可以在多个文件中访问,适合需要共享数据的场景;

静态全局变量:只能在定义它的源文件中访问,具备封装的特性。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询