首页 > 编程语言 >C/C++ 变量的四种存储类型

C/C++ 变量的四种存储类型

时间:2022-10-15 20:22:06浏览次数:44  
标签:存储 变量 int demo register C++ static extern 四种

所有的数据都有两种类型 数据类型: 如 int,float 等 存储类型: 总共有四种存储类型的变量,分别为自动变量(auto)、静态变量(static)、外部变量(extern)以及寄存器变量(register)。 (1)auto - 函数中所有的非静态局部变量。 (2)register - 一般经常被使用的的变量(如某一变量需要计算几千次)可以设置成寄存器变量,register 变量会被存储在寄存器中,计算速度远快于存在内存中的非 register 变量。 (3)static - 在变量前加上 static 关键字的变量。 (4)extern - 把全局变量在其他源文件中声明成 extern 变量,可以扩展该全局变量的作用域至声明的那个文件,其本质作用就是对全局变量作用域的扩展。

#include <stdlib.h>
#include <iostream>
using namespace std;
extern int extern_value;
static int yahuan_xiaoli = 24;//全局静态变量
//int yahuan_extern = 30;
//寄存器变量
void register_demo() {
    register int j = 0;
    printf("j: %d\n", j);
    //C++ 的 register 关键字已经优化,如果我们打印它的地址,它就变成了
    //普通的 auto 变量
    for (register int i = 0; i < 1000; i++) {
            //....
    }
    printf("&j : 0x%p\n", &j);
    {
        int k = 100;
        k += j;
    }
    printf("register_demo - register_demo: %d\n", yahuan_xiaoli);
}
//局部静态变量
void static_demo() {
    static int girl = 18;
    int yahuan = 17;
    ++girl;
    ++yahuan;
    printf("girl: %d yahuan: %d\n", girl, yahuan);
    printf("static_demo - register_demo: %d\n", yahuan_xiaoli);
}
//外部变量
void extern_demo() {
    extern_value++;
    printf("extern_value:%d\n", extern_value);
}
int main(void) {
    int i = 0; //C 语言的 auto 不会报错,C++ auto 已经升级啦
    //register_demo();
    //static_demo();
    //static_demo();
    //static_demo();
    extern_demo();
    system("pause");
    return 0;
}

标签:存储,变量,int,demo,register,C++,static,extern,四种
From: https://www.cnblogs.com/smartlearn/p/16794947.html

相关文章