博客列表 >C++存储类

C++存储类

一枝彩笔
一枝彩笔原创
2017年11月23日 17:05:06540浏览

auto 存储类

自 C++ 11 以来,auto 关键字用于两种情况:声明变量时根据初始化表达式自动推断该变量的类型、声明函数时函数返回值的占位符。

auto f=3.14;      //double

auto s("hello");  //constchar*

auto z = new auto(9); // int*

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

static 存储类

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

        static int a=3; 

            int main(){

            ……

        }

虽然在file1.cpp文件中声明全局变量a,但是因为加了static是的作用域为本文件,故file2.cpp文件中a不能使用file1.cpp文件中的变量。

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

    int fac(int f){


            //相当于只起到一次初始化作用

             static int f=1;  

            f=f+1;

            return f;

    }

第一次调用时f返回的结果是2,再次调用时f初始值是2返回值是3;

extern 存储类

当您有多个文件且定义了一个可以在其他文件中使用的全局变量或函数时,可以在其他文件中使用 extern 来得到已定义的变量或函数的引用。可以这么理解,extern 是用来在另一个文件中声明一个全局变量或函数。

实例

第一个文件:main.cpp

#include <iostream> 

 int count ;

 //引用第二个文件的write_extern()函数

extern void write_extern();

 int main(){   

    count = 5; 

   write_extern();

}

第二个文件:support.cpp

#include <iostream> 

//引用第一个文件的变量count

 extern int count; 

 void write_extern(void){   

    std::cout << "Count is " << count << std::endl;

}



声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议