小古银的官方网站(完整教程):http://www.xiaoguyin.com/
C++入门教程视频:https://www.bilibili.com/video/av20868986/
目录
静态变量的应用场景并不多,但是需要用到的时候还是非常有用的。使用关键字static
声明的变量就是静态变量。
基础示例
#include <iostream> // std::cout std::endl
int get_count(void)
{
static int count = 0;
++count;
return count;
}
int main(void)
{
std::cout << get_count() << std::endl;
std::cout << get_count() << std::endl;
std::cout << get_count() << std::endl;
std::cout << get_count() << std::endl;
std::cout << get_count() << std::endl;
return 0;
}
输出结果:
1
2
3
4
5
基础讲解
如果变量count
不是静态变量的话,也就是普通的局部变量,那么在函数结束时,它的内存就会被释放,下次调用时,又会重新创建变量count
并且初始化为0,那么这时候输出的5行都会是0。
而现在count
被声明为静态变量,那么它的内存实际上是属于全局的,它的内存不会因为get_count()
函数调用结束而释放,但是它的使用范围控制在get_count()
函数里面,其他地方是不能调用变量count
的。
上面代码中,由于变量count
的内存是属于全局的,那么变量count
就会在程序创建的时候被创建。而之后每次调用get_count()
函数时,都是从++count;
这条语句开始执行。