zoukankan      html  css  js  c++  java
  • C++编程学习(五) C++ 存储类

    一、auto 存储类

    根据初始化表达式自动推断被声明的变量的类型。

    auto f=3.14; //double

    auto s("hello"); //const

    char* auto z = new

    auto(9); // int*

    auto x1 = 5, x2 = 5.0, x3='r';//错误,必须是初始化为同一类型

    二、register 存储类

    三、static 存储类

    static 存储类指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。

    因此,使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。

    static 修饰符也可以应用于全局变量。当 static 修饰全局变量时,会使变量的作用域限制在声明它的文件内。

    #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

    四、extern 存储类

    extern 存储类用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的。

    五、mutable 存储类

    六、thread_local 存储类

    博文主要是总结自己的学习,因此有很多知识点没有提到,仅仅提了个人比较容易遗忘的或者非常重要的知识点。很多资料来源于网络和对一些课程的整理,侵权删。格式没花精力调整,望谅解。
  • 相关阅读:
    C++结构体内重载、this指针和友元函数(初步了解)
    数据结构—造树计划—二叉搜索树
    PTA顺序的分数
    PTA兼容任务
    PTA航船
    UML-基于GRASP对象设计步骤
    UML-设计对象时涉及的制品有哪些?
    UML-什么是用例实现(场景实现)?
    UML-如何使用GRASP进行对象设计?
    日志总结
  • 原文地址:https://www.cnblogs.com/JuiceCat/p/12003152.html
Copyright © 2011-2022 走看看