美文网首页
c++ static修饰符

c++ static修饰符

作者: lc_fan | 来源:发表于2018-04-01 10:25 被阅读24次
    1. 修饰局部变量 - static 存储类指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。因此,使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。

    2. 修饰全局变量 - 会使变量的作用域限制在声明它的文件内。

    3. 修饰类数据成员 - 会导致仅有一个该成员的副本被类的所有对象共享。
      例:

    #include <iostream>
     
    // 函数声明 
    void func(void);
     
    static int count = 10; /* 全局变量 */
     
    int main()
    {
        while(count--)
        {
           func();
        }
        return 0;
    }
    // 函数定义
    void func( void )
    {
        static int i = 5; // 局部静态变量
        i++;
        std::cout << "变量 i 为 " << i ;
        std::cout << " , 变量 count 为 " << count << std::endl;
    }
    

    结果:
    变量 i 为 6 , 变量 count 为 9
    变量 i 为 7 , 变量 count 为 8
    变量 i 为 8 , 变量 count 为 7
    变量 i 为 9 , 变量 count 为 6
    变量 i 为 10 , 变量 count 为 5
    变量 i 为 11 , 变量 count 为 4
    变量 i 为 12 , 变量 count 为 3
    变量 i 为 13 , 变量 count 为 2
    变量 i 为 14 , 变量 count 为 1
    变量 i 为 15 , 变量 count 为 0

    相关文章

      网友评论

          本文标题:c++ static修饰符

          本文链接:https://www.haomeiwen.com/subject/ogeocftx.html