C语言的内存映像与存储类型

一,内存映像

    当在命令行中执行一个程序时,计算机会给这个程序映射一个独立的虚拟的内存空间,该程序就在这样的空间中运行,这个空间称为内存映像
 

二,存储类型 -------//用于定义变量

    在定义变量时,需要指定变量的数据类型,
    数据类型主要用于说明该变量的存储方式和在内存中的长度,
    例如:
        int a;  //变量a的存储方式为二进制补码,长度为4个字节
        double  b; //变量b的存储方式为符号位+指数位+小数位,长度为8个字节
    
    但是,在定义变量时,除了需要指定数据类型之外,还必须指定变量的存储类型。
    因为存储类型主要用于说明变量的存放位置,存储期和作用域,变量的这些特征能够让我们更精准在程序中使用变量。

1,存储类型的分类
    
    在linux中,C语言中的存储类型分为6类:
    自动存储类型
    寄存器存存储类型
    全局非static静态存储类型
    全局static静态存储类型
    局部static静态存储类型
    外部存储类型
    
2,如何定义不同存储类型的变量 
                                             变量定义位置      变量定义的形式
    自动存储类型                       代码块内             int a;              //代码块:用{}括起来的一块代码
    寄存器存存储类型                代码块内             register int a;
    全局非static静态存储类型    代码块外             int a;
    全局static静态存储类型        代码块外            static int a;
    局部static静态存储类型        代码块内            static int a;
    外部存储类型                        代码块外            extern int a;

3,不同存储类型变量的特征

不同存储类型变量的特征
 在内存中的位置存储期  作用域 链接
自动存储类型  定义-代码块结束代码块 空链接
寄存器存存储类型寄存器/栈 定义-代码块结束代码块 空链接
全局非静态存储类型.data/.bss 定义-程序结束 多文件外部链接
全局静态存储类型  .data/.bss 定义-程序结束 单文件内部链接
 局部静态存储类型  .data/.bss 定义-程序结束 代码块 空链接
外部存储类型 .data/.bss 定义-程序结束 多文件外部链接


 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值