收藏 分销(赏)

全国计算机等级考试实用应试教程二级C语言C语言中用户标识符的作用域和存储类市公开课特等奖市赛课微课一.pptx

上传人:天**** 文档编号:12577110 上传时间:2025-11-04 格式:PPTX 页数:16 大小:286.66KB 下载积分:10 金币
下载 相关 举报
全国计算机等级考试实用应试教程二级C语言C语言中用户标识符的作用域和存储类市公开课特等奖市赛课微课一.pptx_第1页
第1页 / 共16页
全国计算机等级考试实用应试教程二级C语言C语言中用户标识符的作用域和存储类市公开课特等奖市赛课微课一.pptx_第2页
第2页 / 共16页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,本章重点,12.1,局部变量、全局变量和存放分类,12.2,局部变量及其作用域和生存期,12.3,全局变量及其作用域和生存期,12.4,函数存放分类,第,12,章,C,语言中用户标识符作用域和存放类,第1页,12.1,局部变量、全局变量和存放分类,12.1.1,用户标识符作用域,标识符作用域就是指程序中某一部分,在这一部分中,该标识符是有意义,能够被,C,编译和连接程序所识别。,比如,变量都有自己作用域,在一个函数内定义变量不能在其它函数中引用;变量作用域与其定义语句在程序中出现部位有直接关系。据此能够划分出局部变量和全局变量。,第2页,12.1.2,局部变量、全局变量和存放分类,1,局部变量,在一个函数内,(,或复合语句中,),定义变量称为内部变量,这些变量只能在定义它函数(或复合语句)中使用,离开了定义它函数(或复合语句)就不能使用,把这些变量称“局部变量”。,比如:,float func1(int a),int b;,/*,本函数中变量,a,b,有效*,/,第3页,几点说明:,(,1,)主函数中定义变量,m,和,n,是局部变量,只能在主函数中有效,在其它函数中无效。,(,2,)不一样函数中能够使用相同名字变量,它们代表不一样对象,互不干扰。如,func1,函数中定义,b,和,func2,函数中,b,,它们占有不一样存放单元,是不一样变量。,(,3,)形式参数也是局部变量。形式参数也只能在本函数中有效,其它函数不能调用。如形式参数,a,只能在,func1,函数中有效,形式参数,x,,,y,只能在,func2,函数中有效。,第4页,(,4,)在函数内部复合语句中定义变量,只在该复合语句中有效,出了复合语句就无效。在函数开始定义变量也能够与复合语句中变量相同,但它们代表不是同一个变量,它们占用不一样存放单元。,第5页,2,全局变量,在函数之外定义变量称为外部变量,外部变量是全局变量,全局变量能够为根源程序中全部其它函数所公有。它有效范围是从定义变量位置开始到根源文件结束。比如:,int m,n;/*,定义两个外部变量,m,和,n,,其作用范围全局即从此处到程序结束*,/,void f1(a,b),int a,b;,第6页,几点说明:,(,1,)全局变量必须定义在函数之外,如变量,a,、,c,、,m,和,n,。,(,2,)全局变量有效范围是从定义位置开始到整个程序结束。如,a,和,c,有效范围是整个程序,而,m,和,n,有效范围仅是,f1,函数,(,3,)在一个函数中能够使用局部变量和对应全局变量。,(,4,),局部变量能够和全局变量同名,若同名,在函数中使用变量是局部变量。,第7页,3,存放分类,变量含有数据类型,,C,语言编译系统依据变量数据类型给变量分配存放空间,用来存放该变量值,也就是说变量数据类型决定了变量占多少个存放单元。变量存放类型有四个,分别是,自动型、存放器型、静态型和外部参考型,,其说明符分别是,auto,、,register,、,static,和,extern,。,第8页,12.2,局部变量及其作用域和生存期,12.2.1 auto,变量,当在函数内部或复合语句内定义变量时,,假如没有指定存放类或使用了,auto,说明符,,,系统就认为所定义变量含有自动类别,。比如:,float a;,等价于,auto float a;,第9页,12.2.2 register,变量,存放器变量也是自动类变量。它与,auto,变量区分在于,,存放器型变量是分配在,CPU,通用存放器中,而不是像普通变量那样,占内存单元,。,12.2.3,静态存放类局部变量,当在函数体(或复合语句)内部,用,static,来说明一个变量,能够称为静态局部变量,其作用域仍与,auto,、,register,类型变量一样。,第10页,12.3,全局变量及其作用域和生存期,12.3.1,全局变量作用域和生存期,全局变量只有静态类别。对于,全局变量能够使用,extern,和,static,两种说明符,。,全局变量是在函数外部任意位置上定义变量,它作用域是从变量定义位置开始,到整个源文件结束为止。,第11页,12.3.2,在同一编译单位内用,extern,说明符来扩展全局变量作用域,当全局变量定义在引用函数之后时,应该在函数中用,extern,对此全部变量进行说明,以通知编译程序不需再给它开辟存放单元。这时其作用域从,extern,说明处起,延伸到该函数末尾。,全局变量说明与其定义不一样,定义只能出现一次,在定义全局变量时,不可使用,extern,说明符,而对全局变量说明,能够屡次出现在需要地方,而且必须用,extern,说明。,第12页,12.3.3,在不一样编译单位内用,extern,说明符来扩展全局变量作用域,C,语言中,每个可进行单独编译源文件称为“编译单位”,当一个程序由多个编译单位组成,而且在每个文件中均需要引用同一个全局变量,这时若在每个文件中都定义了一个所需同名全局变量,则在“连接”时将会产生“重复定义”错误。处理方法通常是,在其中一个文件中定义全部变量,而在其它用到这些全局变量文件中用,extern,对这些变量进行说明,申明这些变量已在其它编译单位中定义,通知编译程序无须再为它们开辟存放单元。,第13页,12.3.4,静态全局变量,当用,static,说明符说明全局变量时,此变量称为静态全局变量。静态全局变量只限于本编译单位使用,不能被其它编译单位所引用。,第14页,12.4,函数存放分类,12.4.1,用,extern,说明函数,外部函数是指能够被其它文件中函数调用函数,在定义函数时候假如在“类型说明符”前加上“,extern”,,则此函数就为外部函数。其定义格式以下:,extern,类型说明符 函数名,(,形参说明列表,),假如在定义函数时省略,extern,,则隐含为外部函数。,第15页,12.4.2,用,static,说明函数,假如一个函数只能被本文件中其它函数调用,而不能被其它源文件中函数调用,称它为内部函数,有时也称静态函数。在定义内部函数时,在数据类型符前需加上,static,(有时也说函数存放类型为,static,)。其定义格式以下:,static,类型说明符 函数名,(,形参说明列表,),使用静态函数能够防止不一样编译单位因函数同名而引发混乱。若强行调用静态函数,将会产生犯错信息。,第16页,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服