美文网首页
变量、数据的存储——C语言基础

变量、数据的存储——C语言基础

作者: B_____b | 来源:发表于2019-04-08 17:20 被阅读0次


    内存和硬盘的区别:

    内存(RAM):①:掉电则数据丢失 ②:随机访问 ③:访问速度快

    硬盘(ROM):①:掉电后数据依旧存在 ②:块访问 ③:访问速度慢于内存

    所有内存都有一个编号(内存地址)。

    当需要访问一块内存时,只要得到他的有效地址,则计算机就会直接访问到该地址所代表的内存空间

    内存又分为两种:1)栈空间内存  2)堆空间内存

    这两者的主要区别在于,栈空间内存为自动申请自动释放,堆空间内存为手动申请手动释放

    栈空间内存的特点:

    1)自动申请,自动释放

    2)数据入栈出栈的顺序为,先进后出

    也就是说,最先访问到的数据为最后入栈的数据

    局部变量(自动变量):

    #为什么叫自动变量,什么叫自动变量:在变量名前加上auto关键字称为自动变量,C语言系统会给在函数内部申请的变量缺省性的加上auto

    #函数内部申请的变量就是局部变量,主函数也是函数,主函数内部申请的变量也是局部变量

    #所以自动变量就是局部变量

    结合上面所说,栈空间的特点是自动申请自动释放,所以,局部变量存在一个生命周期,其在声明时开始其生命周期(即:在栈空间上自动申请一片内存空间),到作用域结束时,则其生命周期结束(即:其在栈空间上的内存空间被释放)

    空间申请和空间释放(回收):

    空间申请:内存空间是固定存在的,只不过,这一片的内存空间的使用权是属于程序员的还是电脑的 的问题。那么所谓的申请空间就是指:程序员向系统申请要了一片内存空间,用来管理申请的变量,此时这片空间就归程序员所有,可以正常访问。

    空间释放(回收):系统回收了不再使用的内存空间,此时内存空间上的值并没有被清空,只是程序员不再享有该空间的使用权,如果程序员握有该空间的地址,却没有该空间的使用权,然后使用地址访问的方式强行访问该空间,则可能会出现意想不到的错误。

    能够修饰变量的关键字:

    1)static:

    ①:延长生命周期:针对的是修饰局部变量

    从主函数开始之前存在,主函数结束之后销毁

    它和全局变量有些类似

    #生命周期被延长了,但是作用域没有被延长。

    ②:限制作用域:针对的是修饰全局变量

    全局变量的作用域在整个文件,那么,当这个全局变量被static修饰时,则这个全局变量只能在当前文件中使用。(全局变量默认初始化为0)

    2)const:

    ①将修饰的变量变成常量

    数据的储存方式:

    ①局部变量:栈空间

    ②静态局部变量和全局变量:静态存储区

    ③常量:代码段(数据段)

    相关文章

      网友评论

          本文标题:变量、数据的存储——C语言基础

          本文链接:https://www.haomeiwen.com/subject/asepiqtx.html