C++基础:静态变量(保姆级讲解)

发布时间:2024年01月03日

1.静态变量定义

在C++的,静态变量是一个非常有用的特性,它在程序执行期间只初始化一次,并在程序的整个执行期间都保持其值。

可能这样子说大家无法特别理解:静态变量该怎么定义呢?静态变量的作用是什么?该如何体现呢?别急,举个例子,你将豁然开朗。

2.静态变量的应用

?假设我们现在想编写一个函数,功能是记录我们调用该函数的次数,对于初学者可能会编写出如下代码:

#include<iostream>
using namespace std;
void count() {
	int n = 0;
	n++;
	cout << "程序count()总共被调用了" << n << "次"<<endl;
}
int main(void) {
	for (int i = 0; i < 5; i++) {
		count();
	}
}

得到的结果是:

聪明的你可能会发现,每一次调用count()时,n都会被初始化为0,所以每一次输都是?“程序count()总共被调用了1次”。那么在不改变程序结构的情况下如何实现我们想要的结果呢?这就轮到我们今天的主角静态变量登场了!

静态变量可以使变量在程序执行期间只初始化一次,并在程序的整个执行期间都保持其值。程序应用十分方便,只需在变量定义前面加一个static,代码如下:

#include<iostream>
using namespace std;
void count() {
	static int n = 0;
	n++;
	cout << "程序count()总共被调用了" << n << "次"<<endl;
}
int main(void) {
	for (int i = 0; i < 5; i++) {
		count();
	}
}

得到结果如下:

可以发现,经过了一个小小的修改,?记录调用函数次数的功能就实现了!!

3.静态变量的分类(扩展)

  1. 全局静态变量:定义在程序所有函数之外,其作用域包括全体函数,类似于全局变量。
  2. 局部静态变量:定义在某个函数中,其作用域仅限于本函数内。
  3. 类中的静态成员变量:属于类的成员变量,其作用域为整个程序执行期间。
文章来源:https://blog.csdn.net/shnhe/article/details/135307220
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。