c语言与程序设计 胡元义,C语言与程序设计教程 教学课件 胡元义 全书教案_ 第9章.pdf...

第9章 C语言与程序设计补遗

第9章 C语言与程序设计补遗

9.1 变量的存储类别与生命期

9.2 指向函数的指针变量

9.3 带参数的主函数main

9.4 编译预处理命令

9.5 枚举类型

9.6 位运算

第9章 C语言与程序设计补遗

9.1 变量的存储类别与生命期

1. 生命期的概念

从变量生命期(即由创建到撤消)来分,可以将变量分为

静态存储变量和动态存储变量两类:

(1) 静态存储变量:在程序运行时固定分配存储空间的

变量。

(2) 动态存储变量:在程序运行中根据需要动态分配存

储空间的变量。

程序运行时对应的内存分配示意如图9-1所示。

第9章 C语言与程序设计补遗

图9-1 程序运行时对应的内存分配示意

第9章 C语言与程序设计补遗

全局变量和静态局部变量(static变量)存放在静态数据

区,程序开始执行时给它们分配内存单元,程序执行结束时

再释放这些内存单元。也即在程序的整个执行过程中这些变

量都存在(有自己的内存单元) ,它们的生命期为程序的整个

执行过程。

第9章 C语言与程序设计补遗

动态数据区存放自动局部变量、形参变量和用于中断现

场的保护数据。自动局部变量是指未加staic声明的局部变

量;形参变量是指函数的形参。在函数调用时为自动局部变

量和形参变量在动态数据区分配内存单元,当函数执行结束

时释放这些内存单元。也即在函数的整个执行过程中这些变

量都存在,它们的生命期为函数的整个执行过程。

在C语言中,每个变量都有两个属性:数据类型和数据

的存储类别。前面各章节中,我们在定义变量时只涉及它的

数据类型,其实还可以定义变量的存储类别,它决定这个变

量的存放位置(是静态数据区还是动态数据区)和生命期。

第9章 C语言与程序设计补遗

变量定义的一般形式如下:

[存储类别] 类型标识符 变量名;

其中,方括号“[ ]” 中的内容为可选项。

C语言中的变量可以有4种存储类别:自动变量、寄存器

变量、静态变量和外部变量,分别用存储类别auto、register 、

static和extern 。下面仅对自动变量、寄存器变量和静态变量

进行介绍。

第9章 C语言与程序设计补遗

2. 自动变量

在函数体内或复合语句内定义变量时,如果没有指定存

储类别或使用了“auto”存储类别,则系统都认为所定义的变

量为自动局部变量,简称为自动变量。此外,函数首部中的

形参也是自动变量。例如:

auto int a=2,b;

int a=2,b;

第9章 C语言与程序设计补遗

上述两种定义方法是等价的,即都定义了a和b为自动变

量。每当进入函数体或复合语句时,系统在动态数据区为自

动变量分配临时内存单元,退出时自动释放这些内存单元;

再次进入函数或复合语句时,系统又为它们重新分配临时内

存单元,退出时又自动释放这些内存单元。因此,释放后自

动变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值