




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十二讲 Begin 第七章函数 变量的存储类别外部函数内部函数 对变量的定义需要给出两方面的属性 指变量的名称 类型 取值范围和占据存贮空间的大小 如整型 实型 字符型等 变量存在的时间 生存期 作用范围和在硬件中存放的地点 区域 一 变量的存储类型 7 9变量的存储方式和生存期 变量定义的一般形式为 7 9变量的存储方式和生存期 内存中供用户使用的空间有三部分 存放程序的可执行代码 存放全局变量和静态局部变量 存放函数调用时调用函数的现场保护 自动局部变量和函数形参 7 9变量的存储方式和生存期 1 自动变量 用关键字auto作存储类型说明的局部变量 包括形参 称为自动变量 自动变量存放在动态存储区 都是动态分配存储空间的 7 9 1局部变量的存储类别 1 自动变量 C语言规定 在局部变量的定义中 可省略关键字auto 即 没有指明存储类别的变量 一律隐含为 自动变量 7 9 1局部变量的存储类别 例自动变量的特点示例 看存储区说明 includevoidf intn autoints 0 auto可以省略 s s 1 printf No d s d n n s voidmain intnum for num 1 num 4 num f num 程序运行结果 NO 1 s 1NO 2 s 1NO 3 s 1 7 9 1局部变量的存储类别 2 静态变量 所有全局变量和用关键字static作存储类型说明的局部变量称为静态变量 7 9 2变量的存储类别 静态变量存放在静态存储区 一旦为其分配了存储单元 它们在整个程序执行期间将固定地占用这些存储单元 静态变量举例 main staticinta 2 k 7 9 2变量的存储类别 2 静态变量 所有全局变量都是静态类的 C规定 在定义全局变量时 static 可以省去不写 7 9 2变量的存储类别 静态全局变量仅能为本源文件中各函数使用 不能为本源文件以外的其他源文件使用 静态变量举例 画出存储区说明 intfun intx staticintm 0 n 5 定义m n为静态局部变量 inty 0 printf m d n d y d n m n y m n y return x y m n main inta 2 k for k 1 k 3 k printf d fun d d n k a fun a 程序运行结果 m 0 n 5 y 01 fun 2 10m 1 n 6 y 02 fun 2 12m 2 n 7 y 03 fun 2 14 7 9 2变量的存储类别 例局部静态变量的特点示例 includevoidf intn staticints 0 s s 1 printf No d s d n n s voidmain intnum for num 1 num 4 num f num 程序运行结果 NO 1 s 1NO 2 s 2NO 3 s 3 7 9 2变量的存储类别 静态变量的特点 静态局部变量在整个程序运行期间固定占有存储单元 7 9 2变量的存储类别 静态局部变量和全局变量一样 只在编译时赋初值一次 以后每次函数调用时使用上次函数调用结束时的保留值 静态变量的特点 静态局部变量定义时如不赋初值 系统编译时会自动对数值型静态局部变量赋初值为0 对字符型静态局部变量赋初值为空字符 7 9 2变量的存储类别 静态局部变量仅能为本函数使用 其他函数不能使用和影响它们 自动变量和静态局部变量区别 自动变量的值在函数调用结束后不再保留 下次调用不能使用已有的值 7 9变量的存储方式和生存期 静态局部变量在函数调用结束后 仍然保留上次调用结束的值 func inta intb staticintm 0 i 2 i m 1 m i a b returnm main intk 4 m 1 p p func k m printf p d n p p func k m printf p d n p 求程序运行结果 程序运行结果 p 8p 17 函数练习题 求程序运行结果 intf2 inta intb a b returnb intf1 intx inty intn 0 b 0 staticinta 0 a a x b b y f2 a b printf f1 n d a d b d n n a b returna voidmain intn 1 a 2 b 3 i for i 0 i 2 i a f1 a b b f2 a b printf main n d a d b d n n a b 程序运行结果 f1 n 0 a 2 b 3main n 1 a 2 b 4f1 n 0 a 4 b 4main n 1 a 4 b 5 函数练习题 在选择使用静态局部变量还是自动变量 可以从以下两点考虑 如果需要在两次函数调用之间保持上一次函数调用结果 可以使用局部静态变量 如果在每次调用函数时都必须对局部变量初始化 选择自动变量 但是实际上局部静态变量占用内存时间较长 并且可读性差 因此 除非必要 尽量避免使用局部静态变量 7 9变量的存储方式和生存期 3 寄存器变量 register 寄存器变量 用关键字register作存储类型说明的局部变量 说明 寄存器变量只能用于基本整型变量 短整型整型变量和字符型变量 寄存器变量的分配方式是动态分配的 由于CPU中的通用寄存器数目有限 通常只把少数使用频繁的变量定义为寄存器变量 对超出寄存器数目的寄存器变量作一般自动变量处理 7 9变量的存储方式和生存期 例求n 的函数 intfac intn registerinti f 1 定义i f为寄存器变量 for i 1 i n i f f i returnf main intk for k 1 k 5 k printf d d n k fac k 7 9变量的存储方式和生存期 4 外部变量 extern 外部变量是指在函数之外定义的变量 外部变量也称全局变量 它的作用域通常从变量的定义处开始 直到本程序文件的结束处 外部变量的定义通常放在所有使用它的函数前面 7 9变量的存储方式和生存期 4 外部变量 extern 利用关键字extern对外部变量加以声明时 可以是在一个源文件内 也可以在多个文件组成的程序中 7 9变量的存储方式和生存期 对于由多个源文件组成C程序 C语言规定 对共用的外部变量可以在任一源文件中定义一次 其他源文件中用extern对其声明后 即可使用 如果希望某些外部变量仅限于本文件使用 则在定义外部变量时前面加一个static说明 外部变量的声明可以有多次 其位置在定义点之前任意处 不需要分配存储空间 外部变量的定义只有一次 其位置只能在函数外 并可对外部变量分配存储单元 初始化 7 9变量的存储方式和生存期 例外部变量举例 在同一源文件内 intmax inta intb intc c a b a b return c main externX Y 声明外部变量 printf d n max X Y intX 12 Y 8 定义外部变量 7 9变量的存储方式和生存期 例 外部变量举例 在两个文件中 求ab 文件1 f1 c include c user f2 c intX 定义外部变量 main inta 4 b 5 X a printf d n pow b 文件2 f2 cexternintX 声明外部变量 intpow intn inti y 1 for i 1 i n i y y X returny 7 9变量的存储方式和生存期 1 内部函数 只能被其所在文件内的函数调用 而不能被其他文件内的函数所调用的函数称为内部函数 格式 static类型标识符函数名 形参 7 4内部函数和外部函数 内部函数也称静态函数 内部函数不能被其他文件中的函数使用 所以在不同文件中可以使用相同名字的内部函数 2 外部函数 能被其他文件调
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民族课件的课题
- 吉林市新质生产力发展路径
- 民族舞课程课件教学
- 民族舞介绍课件
- 医患关系研究
- 高职教育新质生产力
- 民族服饰绘画课件
- 铸铁拉压曲线
- 2025年传染病学典型疫情处理模拟测试答案及解析
- 2025年儿科学科免疫接种知识测验答案及解析
- 2025年公证员助理招聘考试题库及模拟题答案
- 婴幼儿发展引导员岗前考核试卷及答案
- 2025湖北省监督数据分析应用中心专项招聘22人考试参考试题及答案解析
- 汽车维修工国家职业资格二级技能试题(附答案)
- 文创市集限定摊位协议
- 2025版旅游景区导游及服务人员派遣合同模板
- 2025年中国癌症筛查及早诊早治指南(试行)
- 人教鄂教版(2024)科学一年级上册每课教学反思
- 川教版(三起)(2024)三年级上册英语全册教案
- 名誉顾问聘任管理办法
- 《戏曲服饰欣赏》课件
评论
0/150
提交评论