- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 【C 语言】第十四章 【局部变量】 【全局变量】 【自动类型变量】 【寄存器类型变量】 【静态类型变量】 【外部类型变量】 14 局部变量与全局变量 14.1.1 局部变量 14.1.2 全局变量 14.1.1 局部变量 局部变量就是在函数内部或者块内定义的变量。 局部变量只在它的函数内部或块内部有效; 例如: int func(int a,int b) /*函数func1*/ { …… } main() { int m,n; …… } double x,y 变量a,b,x,y只在func函数内有效 变量m,n只在main函数内有效 14.1.1 局部变量 说明: ⑴ 主函数main中定义的变量(m,n)也只在主函数中有效,并不是因为在主函数中定义,而在整个文件或程序中有效。因为主函数也是一个函数,它与其它函数是平行关系。 ⑵ 不同函数中可以使用相同的变量名,它们代表不同的变量,之间互不干扰。 ⑶ 在一个函数内部,还可以在复合语句(块)中定义变量,这些变量只在本复合语句中有效。 14.1.1 局部变量 说明: ⑷ 如果局部变量的有效范围有重叠,则有效范围小的优先 如: void main() { int a,b,c; …… { int c; c=a+b; …… } } 局部变量c优先 a,b,c 在此范围有效 范例14-1 14.1.2 全局变量 在函数之外定义的变量称为全局变量,又称外部变量 。 例如: int a=2,b=5; /*全局变量*/ int f1() /*定义函数f1*/ { ...... } double c,d; /*全局变量*/ void f2() /*定义函数f2*/ { ...... } main() /*主函数*/ { ...... } int e,f; /*全局变量*/ c、 d 的作用域 a、 b 的作用域 范例14-2 14.1.2 全局变量 注意:当局部变量与全局变量同名时,在局部变量的作用范围内,全局变量不起作用,即局部变量优先。 在实际使用过程中,建议不在必要时不要使用全局变量。 范例14-3 变量的存储类别 1、静态存储变量 程序在运行整个的过程中,始终占用固定的内存空间,直到程序运行结束,才释放占用的内存空间。静态存储类别的变量被存放于内在空间的静态存储区。 2、动态存储变量 当程序运行进入定义它的函数或是复合语句时才被分配存储空间,程序运行结束离开此函数或复合语句时,所占用的内存空间被释放。这是一种节省内存空间的存储方式。 C 程序存储 在C程序运行时,占用的内存空间分为3个部分,如下图所示: 程序代码区 静态存储区 动态存储区 程序运行时的数据分别存储在静态存储区和动态存储区。 静态存储区用来存放程序运行期间所占用的固定存储单元的变量,如全局变量。 动态存储区用来存放不需要长期占用内存的变量, 如函数的形参等。 具体的划分 14.2.1 自动类型(auto) 14.2.2 寄存器类型(register) 14.2.2 静态类型(static) 14.2.2 外部类型(extern) 14.2.1 自动类型(auto) 自动类型关键字:auto。其一般形式为: auto 类型 变量名; 例如: int func1(int a) { auto int b,c=3; …… } 14.2.2 寄存器类型(register) 寄存器类型变量的存储单元被分配在寄存器当中,用关键字register说明,其一般形式为: register 类型 变量名; 例如:register int a; 注意: ⑴ 寄存器类型的变量不宜过多; ⑵ 变量的长度应该与通用寄存器的长度相当,一般为int型或char型; ⑶ 寄存器变量的定义通常是不必要的。 范例14-4 14.2.3 静态类型(static) 静态类型的变量占用静态存储区,用static关键字来说明,其一般形式为: static 类型 变量名;
您可能关注的文档
最近下载
- 起重吊装作业安全管理(信号工安全教育培训课件).pptx VIP
- 学校食堂就餐规范.pptx VIP
- 人教版二年级上册数学全册集体备课教学设计(配2025年秋改版教材).docx
- 中医穴位养生讲座课件最新完整版本.pptx VIP
- 2025年法院书记员招聘考试笔试试题(50题)附答案.docx VIP
- 2024-2025学年初中信息技术(信息科技)七年级上册粤高教A版(2021)教学设计合集.docx
- 视网膜脱离ppt课件【38页】_20216454.pptx VIP
- 01 a3潮南峡山污水处理厂污水管网专项规划-文本2017 4 5.pdf VIP
- 2025—2026学年高一语文开学第一课.pptx VIP
- 2025年广西壮族自治区玉林市某中学小升初入学分班考试数学考试真题含答案.docx VIP
文档评论(0)