- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
1局部变量、全局变量和存储分类2局部变量及其作用域和生存期3全局变量及其作用域和生存期4函数的存储分类第12章C语言中用户标识符的作用域和存储类本章重点1局部变量、全局变量和存储分类标识符的作用域就是指程序中的某一部分,在这一部分中,该标识符是有意义的,可以被C编译和连接程序所识别。1.1用户标识符的作用域例如,变量都有自己的作用域,在一个函数内定义的变量不能在其它函数中引用;变量的作用域与其定义语句在程序中出现的部位有直接关系。据此可以划分出局部变量和全局变量。1.2局部变量、全局变量和存储分类局部变量在一个函数内(或复合语句中)定义的变量称为内部变量,这些变量只能在定义它的函数(或复合语句)中使用,离开了定义它的函数(或复合语句)就不能使用,把这些变量称“局部变量”。例如:floatfunc1(inta){intb;……}/*本函数中变量a,b有效*/主函数中定义的变量m和n是局部变量,只能在主函数中有效,在其它函数中无效。不同函数中可以使用相同名字的变量,它们代表不同的对象,互不干扰。如func1函数中定义的b和func2函数中的b,它们占有不同的存储单元,是不同的变量。形式参数也是局部变量。形式参数也只能在本函数中有效,其它函数不能调用。如形式参数a只能在func1函数中有效,形式参数x,y只能在func2函数中有效。321几点说明:在函数内部的复合语句中定义的变量,只在该复合语句中有效,出了复合语句就无效。在函数开始定义的变量也可以与复合语句中的变量相同,但它们代表的不是同一个变量,它们占用不同的存储单元。全局变量在函数之外定义的变量称为外部变量,外部变量是全局变量,全局变量可以为本源程序中的所有其它函数所公有。它的有效范围是从定义变量的位置开始到本源文件结束。例如:intm,n;/*定义两个外部变量m和n,其作用范围全局的即从此处到程序结束*/voidf1(a,b)inta,b;{……}STEP1STEP2STEP3STEP4全局变量必须定义在函数之外,如变量a、c、m和n。全局变量的有效范围是从定义的位置开始到整个程序的结束。如a和c的有效范围是整个程序,而m和n的有效范围仅是f1函数在一个函数中可以使用局部变量和相应的全局变量。局部变量可以和全局变量同名,若同名,在函数中使用的变量是局部变量。几点说明:存储分类变量具有数据类型,C语言的编译系统根据变量的数据类型给变量分配存储空间,用来存放该变量的值,也就是说变量的数据类型决定了变量占多少个存储单元。变量的存储类型有四个,分别是自动型、寄存器型、静态型和外部参照型,其说明符分别是auto、register、static和extern。2局部变量及其作用域和生存期12.1auto变量2当在函数内部或复合语句内定义变量时,如果没有指定存储类或使用了auto说明符,系统就认为所定义的变量具有自动类别。例如:3floata;等价于autofloata;42.2register变量01寄存器变量也是自动类变量。它与auto变量的区别在于,寄存器型变量是分配在CPU的通用寄存器中的,而不是像一般变量那样,占内存单元。022.3静态存储类的局部变量03当在函数体(或复合语句)内部,用static来说明一个变量,可以称为静态局部变量,其作用域仍与auto、register类型的变量一样。043全局变量及其作用域和生存期3.1全局变量的作用域和生存期全局变量只有静态类别。对于全局变量可以使用extern和static两种说明符。全局变量是再函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束为止。13.2在同一编译单位内用extern说明符来扩展全局变量的作用域2当全局变量定义在引用函数之后时,应该在函数中用extern对此全部变量进行说明,以通知编译程序不需再给它开辟存储单元。这时其作用域从extern说明处起,延伸到该函数的末尾。3全局变量的说明与其定义不同,定义只能出现一次,在定义全局变量时,不可使用extern说明符,而对全局变量的说明,可以多次出现在需要的地方,而且必须用extern说明。3.3在不同编译单位内用extern说明符来扩展全局变量的作用域1C语言中,每个可进行单独编译的源文件称为“编译单位”,当一个程序由多个编译单位组成,并且在每个文件中均需要引用同一个全局变量,这时若在每个文件中都定义了一个所需的同名全局变量,则在“连接”时将会产生“重复定义”的
您可能关注的文档
- 营养物质的代谢.ppt
- 装修公司小区营销方案.ppt
- 营业员销售10大技巧.ppt
- 超声引导下的神经阻滞.ppt
- 质粒DNA的提取鉴定.ppt
- 营养系杂交育种.ppt
- 项目非线性电子元器件的检测工艺.ppt
- 葡萄沟(附高清图).ppt
- 通货膨胀与失业的解剖.ppt
- 走进梁氏骨科医院手术室.ppt
- 2025年市国资委党委开展深入贯彻中央八项规定精神学习教育工作方案与开展学习中央八项规定主题教育工作方案(2篇文).docx
- 在2025年市商务局党组研究部署深入贯彻中央八项规定精神学习教育专题会上的讲话稿、教育动员部署会议上的讲话提纲【2篇文】.docx
- 开展2025年学习八项规定主题教育工作方案与领导在局机关深入贯彻八项规定精神学习教育部署会上的讲话稿(两篇文).docx
- 2025年深入贯彻中央八项规定精神学习教育实施方案与全面落实中央八项规定精神情况总结(2篇文).docx
- 2025年落实中央八项规定精神情况总结稿与领导在深入贯彻中央八项规定精神学习教育工作会议的主持讲话稿(2篇文).docx
- 2025年组织部长在八项规定学习教育工作专班座谈会的讲话稿与开展学习中央八项规定主题教育工作方案(两篇文).docx
- 学习2025年深入贯彻中央八项规定精神知识测试题135题【附答案】与全面深入贯彻中央八项规定精神学习教育实施方案.docx
- 2025年县委书记在中央八项规定精神学习教育动员会上的讲话稿遵守党的政治纪律和落实中央八项规定精神情况个人对照检查材料(2篇文).docx
- 2025年在深入贯彻中央八项规定精神学习教育动员部署会上的讲话稿与在市委党的建设工作领导小组会议暨部署深入贯彻中央八项规定精神学习教育专题会讲话稿(两篇文).docx
- 2025年市工业园区党工委开展深入贯彻中央八项规定精神学习教育工作方案与深入贯彻中央八项规定精神学习教育动员部署会讲话提纲【2篇文】.docx
文档评论(0)