全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C 程序设计讲义程序设计讲义 函数 理论四 函数 理论四 教学目的 教学目的 1 领会变量存储类型的概念及各种存储类型变量的生存期和有效范围 2 理解内部函数与外部函数 教学重点 教学重点 数组作为函数的参数 变量的存储类别与作用域 教学难点 教学难点 变量的作用域及内外部函数 授课形式 授课形式 理论 教学条件 教学条件 多媒体 教学内容 教学内容 复习 函数的递归调用复习 函数的递归调用 新课 新课 变量的作用域 有效范围 可见性 变量的作用域 有效范围 可见性 变量从数据类型的角度 可以分为整型 实型 字符型等 变量的作用域 变量的有效范围或者变量的可见性 变量从作用域 变量的有效范围 可见性 的角度可以分为 局部变量 全局变量 1 1 局部变量局部变量 局部变量 是指在一定范围内有效的变量 1 在复合语句内定义的变量 在本复合语句范围内有效 作用域局限于复合语句内 2 有参函数的形式参数也是局部变量 只在其所在的函数范围内有效 说明 1 不同函数中和不同的复合语句中可以定义 使用 同名变量 2 形参也是局部变量 2 局部变量所在的函数被调用或执行时 系统临时给相应的局部变量分配存储单元 一 旦函数执行结束 则系统立即释放这些存储单元 2 2 全局变量全局变量 全局变量 在函数之外定义的变量 所有函数前 各个函数之间 所有函数后 全局变量作用域 从定义全局变量的位置起到本源程序结束为止 在引用全局变量时如果使用 extern 声明全局变量 可以扩大全局变量的作用 域 例如 扩大到整个源文件 模块 对于多源文件 模块 可以扩大到其它源 文件 模块 在定义全局变量时如果使用修饰关键词 static 表示此全局变量作用域仅限于本 源文件 模块 说明 1 全局变量可以和局部变量同名 当局部变量有效时 同名全局变量不起作用 2 使用全局变量可以增加各个函数之间的数据传输渠道 在一个函数中改变一个全局变 量的值 在另外的函数中就可以利用 但是 使用全局变量使函数的通用性降低 使 程序的模块化 结构化变差 所以要慎用 少用全局变量 3 如果在外部变量在文件开头定义 则在整个文件范围内都可以使用 如果不在文件开 头那么作用范围就是从定义点到文件终了 如果在定义点以前的函数想使用该外部变 量 则需要加 extern 加以说明 例如 int max x y 定义 main 函数 int x y int z z x y x y return z void main extern int a b 外部变量说明 printf d max a b int a 13 b 8 外部变量定义 4 如果在同一个文件中 外部变量与局部变量同名 则在局部变量的作用范围内 外部 变量不起作用 如 int a 3 b 5 max int a int b int z z a b a b return z void main int a 8 printf d max a b 变量的存储类别 生存期 生命期 变量的存储类别 生存期 生命期 变量从空间上分为局部变量 全局变量 从变量存在的时间的长短 即变量生存期 来划分 变量还可以分为 动态存储变量 静态存储变量 变量的存储方式决定了变量的生存期 C 语言变量的存储方式可以分为 动态存储方式 静态存储方式 动态存储方式动态存储方式 都是局部变量都是局部变量 动态存储方式 在程序运行期间根据需要为相关的变量动态分配存储空间的方式 C 语言中 变量的动态存储方式主要有自动型存储方式和寄存器型存储方式 自动型存储方式 自动型存储方式 auto auto 型存储方式是 C 语言默认的局部变量的存储方式 也是局部变量最常使用的存储 方式 1 自动变量属于局部变量的范畴 作用域限于定义它的函数或复合语句内 2 自动变量所在的函数或复合语句执行时 系统动态为相应的自动变量分配存储单元 当自动变量所在的函数或复合语句执行结束后 自动变量失效 它所在的存储单元被 系统释放 所以原来的自动变量的值不能保留下来 若对同一函数再次调用时 系统 会对相应的自动变量重新分配存储单元 自动 局部 变量的定义格式 auto 类型说明 变量名 缺省时系统默认 auto 寄存器型存储方式 寄存器型存储方式 register 静态存储方式静态存储方式 在程序编译时就给相关的变量分配固定的存储空间 在程序运行的整个期 间内都不变 的存储方式 C 语言中 使用静态存储方式的主要有静态存储的局部变量和全局变量 静态存储的局部变量 static 类型说明 变量名 初始化值 其中 static 是静态存储方式关键词 不能省略 全局变量全局变量全部是静态存储的 全局变量的 extern 声明及令人困惑的全局变量的 static 定义 内部函数和外部函数内部函数和外部函数 1 1 内部函数内部函数 内部函数 只能被本源文件 模块 中的各个函数所调用 不能为其它模块中函数所 调用的函数 内部函数的定义 register 类型说明 变量名 说明 1 内部函数又称为静态函数 其使用范围仅限于定义它的模块 源文件 内 对于其它 模块它是不可见的 2 不同模块中的内部函数可以同名 它们的作用域不同 事实上根本就是不同的函数 3 内部函数定义 static 关键词不能省略 2 2 外部函数外部函数 外部函数 能被任何源文件 模块 中的任何函数所调用的函数 外部函数的定义 extern 函数类型 函数名 形参表 说明 1 外部函数定义 extern 关键词可以省略 如果省略 默认是外部函数 2 外部函数可以在其它模块中被调用 如果需要在某个模块中调用它 可以模块中某个位 置声明 extern 函数类型 函数名 形参表 就可以了 函数应用举例函数应用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年幼儿园保育员职业技能模拟测试题及答案(完整版)
- 蓝精灵教学设计小学音乐人音版五线谱北京二年级下册-人音版(五线谱)(北京)
- 三年级英语下册 Unit 5 Family Activities Lesson 1 教案2 人教新起点
- 美术二年级下册1春天在哪里教学设计
- 英语周报2025年高中英语 Unit1 Tales of the unexplained Reading教学设计 牛津译林版必修2
- 银行个人理财专项试题及答案
- 2026中国半导体测试设备核心芯片国产化进程报告
- 2026中国医用磁共振行业超导技术突破与运营成本优化报告
- 2026汽车电子行业市场现状与创新投资评估报告
- 我的课外劳动日记(九)教学设计小学劳动人教版一年级下册-人教版
- 2026年北京市高考英语试卷(含答案及解析)
- 矿山爆破管理办法
- 四川省成都市2023级(2026届)高中毕业班摸底测试数学
- 扣件清理活动方案
- 科技特派团内部管理制度
- JG/T 14-2010通风空调风口
- 2025年江苏省c类行测真题及答案解析
- 招商岗位测试题及答案
- 医院后勤管理与设备职责
- 家居与室内设计培训资料
- 高考英语复习读后续写练习 善举篇 改变家乡为无法使用操场的孩子们带来福音 课件
评论
0/150
提交评论