• Index

静态变量

Reads: 19

静态变量的应用场景并不多,但是需要用到的时候还是非常有用的。使用关键字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;这条语句开始执行。


Comments

Make a comment

  • Index

WARNING: You are using an old browser that does not support HTML5. Please choose a modern browser (Chrome / Microsoft Edge / Firefox / Sarafi) to get a good experience.