zoukankan      html  css  js  c++  java
  • C语言-存储类&作用域&生命周期&链接属性

    1、概念解析
    (1)存储类
     a.存储类就是存储类型,也就是描述C语言变量在何种地方存储。
     b.内存有多种管理办法:栈、堆、数据段、bss段、.text段......一个变量的存储类属性就是描述这个变量存储在何种内存段中。
     c.譬如:局部变量分配在栈上,所以它的存储类就是栈;显式初始化为非0的全局变量分配在数据段,显式初始化为0和没有显示初始化
     (默认为0)的全局变量分配在bss段。
    (2)作用域
    a.作用域就是描述这个变量起作用的代码范围。
    b.基本来说,C语言变量的作用域规则是代码块作用域。意思就是这个变量起作用的范围是当前的代码块。代码块就是一对大括号{}括起来
    的范围,所以一个变量的作用域是:这个变量定义所在的{}范围内从这个变量定义开始往后的部分。(这就解释了为什么变量定义总是在一个
    函数的最前边)
    (3)生命周期
    a.声明周期是描述这个变量什么时候诞生(运行时分配内存空间给这个变量)及什么时候死亡(运行时收回这个内存空间,此后再不能访问
    这个内存地址,或者访问这个内存地址已经和这个变量无关了)的。
    b.变量和内存的关系,就和人(变量)去图书馆借书(内存)一样。变量的生命周期就好像我们借书的这段周期一样。
    c.研究变量的生命周期可以帮助我们理解程序运行的一些现象、理解C语言的一些规则。
    (4)链接属性
    a.程序从源程序到最终可执行程序,经历的过程:编译、链接。
    b.编译阶段就是把源代码搞成.o目标文件,目标文件里面有很多符号和代码段、数据段、bss段等分段。符号就是编程中的变量名、函数名等。
    运行时变量名、函数名能够和相应的内存对应起来,靠符号来做链接的。
    c. .o的目标文件链接生成最终可执行程序的时候,其实就是把符号和相对应的段给链接起来。C语言中的符号有三种链接属性:外连接属性、
    内链接属性、无连接属性。

  • 相关阅读:
    1.Hibernate配置
    CKEditor/FCKEditor的使用
    介绍一个好用的工具类库commons-beanutils
    SpringBean.xml配置
    MVC框架显示层——Velocity技术
    mysql CMD命令
    day 05
    day 04
    day03
    python day 02
  • 原文地址:https://www.cnblogs.com/jiangtongxue/p/11849728.html
Copyright © 2011-2022 走看看