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

猜你喜欢

转载自www.cnblogs.com/JuiceCat/p/12003152.html
今日推荐