• 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 存储类

    博文主要是总结自己的学习,因此有很多知识点没有提到,仅仅提了个人比较容易遗忘的或者非常重要的知识点。很多资料来源于网络和对一些课程的整理,侵权删。格式没花精力调整,望谅解。
  • 相关阅读:
    关于java中的继承
    jdk?jre?
    spring AOP的两种配置
    ng-repeat如何限制循环次数
    AngularJS filter:search 是如何匹配的 ng-repeat filter:search ,filter:{$:search},只取repeat的item的value 不含label
    Anjular的ng-repeat
    SpringBoot扫描不到类,注入失败A component required a bean of type 'XXService' that could...
    React路由安装使用和多种方式传参
    Vue详细介绍模板语法和过滤器的使用!
    Vue定义组件和生命周期函数及实例演示!
  • 原文地址:https://www.cnblogs.com/JuiceCat/p/12003152.html
Copyright © 2020-2023  润新知