• 第六章 变量的存储类型


    内存的分区

    内存分为物理内存、虚拟内存
    物理内存:实实在在的存储设备
    虚拟内存:操作系统虚拟出来的内存

    操作系统会在物理内存和虚拟出来的内存。
    操作系统会在物理内存和虚拟内存之间做映射。
    32位系统下,每个进程的寻址范围是4G 0x00 00 00 00 ~ 0xff ff ff ff
    在写程序的时候,看到的都是虚拟内存地址。

    1、堆

    在动态申请内存的时候,在堆里开辟内存。

    2、栈

    只要存放局部变量

    3、静态全局区

    3.1、未初始化的静态全局区

    静态变量(定义变量的时候,前面加static修饰),或全局变量,没有初始化的,存放在此区

    3.2、初始化的静态全局区

    全局变量、静态变量、赋值后,存放在此区

    4、代码区

    存放程序代码

    5、文字常量区

    存放常量的

    普通局部变量(自动变量)

    定义在函数内部

    auto int a;//auto可以省略,表示动态分配内存
    
    • 1

    作用范围:在函数中定义的,在函数中有效。在复合语句中定义的,在复合语句中有效。
    生命周期:在函数调用的时候才取分配内存,调用结束之后,释放内存。

    静态局部变量

    局部变量前面加static
    作用范围:在函数中有效
    生命周期:第一次调用的时候,分配内存空间赋值,函数结束后,不会释放,直到程序结束。

    定义普通局部变量,不赋值,值是随机的。
    静态局部变量,不赋值,编译时自动赋初值0或空字符‘\0’.

    普通的全局变量

    在函数外部定义的变量

    int num = 100;
    int main()
    {
    }
    
    • 1
    • 2
    • 3
    • 4

    作用范围:在程序的所有地方。
    声明周期:在程序运行的整个过程,一直存在,知道程序结束。

    静态全局变量

    普通全局变量前面加static
    作用范围:只能在它定义的.c文件中使用
    生命周期:在程序运行的整个过程,一直存在,知道程序结束。

  • 相关阅读:
    反射知识点学习
    动作捕捉系统用于柔性机械臂的末端定位控制
    数字孪生城市,智慧城市可视化技术解决方案案例
    2022-11-11 C++并发编程( 四十一 )
    CAP定理
    【汇编语言-王爽】第六章:包含多个段的程序
    170页6万字智慧能源管理平台建设方案书
    24.Python文件I/O(二)【异常处理&断言assert】
    探索MacOS:苹果电脑的操作系统的魅力
    程序人生,中秋共享
  • 原文地址:https://blog.csdn.net/LookOutThe/article/details/133460633