深入c语言_存储类型

    了解计算机的都知道内存有很多种,比如寄存器,内存,内存中又有很多段,代码段,数据段,堆栈等等与编程相关的,数据段还可以细分,初始化的,未初始化的,只读的等等。所以一个变量,可以在多种地方存储。变量的存储类型就是告诉变量存储在哪些地方的,虽然这么说不太严谨,因为有寄存器类型的导致的,但是可以这么理解。最重要的是根据变量的存储类型可以确定变量的生命周期。这个很好理解,栈的变量和堆的变量以及数据段的变量生命周期肯定是不一样的,应为栈的变量在出栈后就不能用了,堆里的变量free后就不能用了。

    我们把内存在这里分成三类,寄存器,运行时的堆栈,普通内存。就是把除了寄存器的内存在另一个角度看待又分了一下。

    具有代码块类型的变量的存储类型是auto,对应的是堆栈中,离开代码块后变量便销毁了。但是如果在代码块中的变量被static修饰后,它的存储类型就变成了静态,对应的是普通内存。

    auto类型的变量被register修饰后,它都有可能被存放到寄存器中,之所以说是有可能是因为,一个cpu里寄存器的数量非常少,而且寄存器都有不同的作用,所以给我们使用的寄存器不多,如果可以的话,cpu就把我们的变量存到寄存器,因为它只能修饰auto变量,所以它的声明周期和auto一样。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值