zoukankan      html  css  js  c++  java
  • C的存储类别

    1.存储类别:

    存储类别指的是数据在内存中存储的方法。分为静态存储和动态存储两大类。

    包含4种:

    自动的(auto)          函数中的局部变量,如不专门声明为static存储类别,都是动态地分配存储空间的,数据存储在动态存储区中。

    静态的(static)        局部变量的值在函数调用结束后不消失而保留原值,

    寄存器的(register)           C语言允许将局部变量得值放在CPU中的寄存器中,在寄存器中的变量是不能取地址。且数量有限一般为2 到3个。

                  只有局部自动变量和形式参数才能够被定义为寄存器变量,全局变量和局部静态变量都不能被定义为寄存器变量。      

    外部的(extern)      外部变量(即全局变量)是在函数的外部定义的,它的作用域为从变量定义处开始,到本程序文件的末尾。

                  如果在定义点之前的函数想引用该外部变量,则应该在引用之前用关键字extern对该变量作“外部变量声明”。

    2.内存中用户存储空间的分配情况(三种):

    程序区:存放程序语句

    静态存储区:全局变量,局部静态变量(extern,static)。存放全局变量,在程序开始执行时给全局变量分配存储区,程序执行完毕就释放。

    动态存储区:函数形参变量(在调用函数时给形参分配存储空间);局部动态变量(auto ,register);函数调用现场保护和返回地址等。

     任何临时变量都是处于栈区的,包括在main()函数中定义的变量 ;

    const修饰局部变量则存放在栈区,如果修饰全局变量就存放在全局区

    参考资料

     寄存器变量:https://www.cnblogs.com/reality-soul/p/6369792.html

  • 相关阅读:
    3.5 操作系统习题
    04_jni开发常见错误_本地方法没有找到
    3.4 目录和spooling
    3.3 作业管理
    03_jni_helloworld_完成
    ASP.NET MVC 4 过滤器(Authorize)
    MVC实现实现文件流打包成压缩包
    MVC实现实现文件流打包成压缩包
    MVC实现实现文件流打包成压缩包
    图解分布式架构的演进过程!
  • 原文地址:https://www.cnblogs.com/Gimiracle/p/13865443.html
Copyright © 2011-2022 走看看