C语言程序设计基础与实训教程 第7章.ppt

C语言程序设计基础与实训教程 第7章.ppt

ID:50084379

大小:162.00 KB

页数:35页

时间:2020-03-08

C语言程序设计基础与实训教程 第7章.ppt_第1页
C语言程序设计基础与实训教程 第7章.ppt_第2页
C语言程序设计基础与实训教程 第7章.ppt_第3页
C语言程序设计基础与实训教程 第7章.ppt_第4页
C语言程序设计基础与实训教程 第7章.ppt_第5页
资源描述:

《C语言程序设计基础与实训教程 第7章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章存储类别和作用域第页主要内容数据类型和存储类别局部变量和全局变量变量的存储类别内部函数和外部函数第页7.1数据类型和存储类别在C语言中,每一个变量都有两个属性:数据类型和存储类别。已经在前面介绍了数据类型(如整型和字符型),数据类型实际上是反映了数据的操作属性。在程序中使用的每一个变量都必须定义,指定其数据类型,编译程序就是根据数据类型为变量分配一定长度的存储单元,规定其数值范围,并且还根据它检查变量所参与的运算是否合法(例如,进行求余运算的对象都必须是整型)。变量的存储类别反映了存储位置、

2、变量的生存期(存在性)和变量的作用域(可见性)3种属性。第页7.1数据类型和存储类别变量的存储位置程序中定义的任何一个变量,在编译时都分配存储空间。在计算机中用以存放变量值的地方有两个:一是内存,二是寄存器。内存的数据区分为两部分:静态存储区和动态存储区。寄存器实际上也是一种存储器,只不过其存取速度比普通的内存要快,通常用寄存器存放程序的中间数据,以提高程序执行效率。C语言中可以指定变量是存放在内存中还是寄存器中。第页7.1数据类型和存储类别变量的生存期(存在性)C语言的变量按其值存在的时间可以分

3、为两种:静态存储变量和动态存储变量。静态存储变量是在编译时就分配存储单元,程序执行开始后该变量就存在(存放在静态存储区),程序结束时被释放。也就是说,静态存储变量的生存期就是程序执行的整个过程,在该过程中占有固定的存储单元。动态存储变量是在程序执行期间根据需要进行动态的分配存储空间(存放在动态存储区中)。例如,函数的形式参数和在函数体内定义的变量,只有在调用该函数时分配存储单元,当该函数执行结束时,释放存储单元。动态存储变量的生存期是程序执行周期的一部分,根据函数调用的需要,动态地分配和释放存储单

4、元。第页7.1数据类型和存储类别变量的作用域(可见性)所谓变量的作用域是指变量在程序中有定义的范围,在这个范围内引用该变量是合法的。从变量的作用域角度来分,可以分为全局变量和局部变量。变量只有在其作用域才是可见的(即可以引用的),离开其作用域则不可见(即不能引用)。第页7.2局部变量和全局变量局部变量全局变量第页7.2.1局部变量在函数内定义的变量(包括形式参数)是内部变量,也称局部变量。它的作用域局限于它所在的函数,也就是说,只能在函数内部使用,其他函数不能使用。在main函数中定义的变量也只在

5、main函数中有效,在其他函数中也是无效的。main函数也不能使用其他函数中定义的变量。第页7.2.1局部变量例:floatf1(inta)/*函数f1*/{intb,c;…a、b、c有效}charf2(intx,inty)/*函数f2*/{inti,j;…x、y、i、j有效}main(){intm,n;/*主函数*/…m、n有效}第页7.2.1局部变量说明:主函数main中定义的变量(m、n)也只在主函数中有效,而不因为在主函数中定义而在整个文件或程序中有效。主函数也不能使用其他函数中定义的变量

6、。不同函数中可以使用相同名字的变量,而且类型也可以不一样,它们代表不同的对象,互不干扰。例如,在f1函数中定义了变量b和c,倘若在f2函数中也定义变量b和c,它们在内存中占不同的单元,互不混淆。形式参数也是局部变量。例如,f1函数中的形参a,也只在f1函数中有效。其他函数不能调用。在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合语句也可称为“分程序”或“程序块”。第页7.2.2全局变量一个C程序可以由一个或多个源程序文件组成,一个源文件可以包含一个或多个函数,在函数

7、外部定义的变量称为外部变量。外部变量是全局变量,可以被多个函数所共用,其作用域为从变量的定义点开始到本源文件的末尾。第页7.2.2全局变量【例】外部变量与局部变量同名。inta=3,b=5;/*a、b为外部变量*/max(inta,intb)/*a、b为局部变量*/{intc;c=a>b?a:b;return(c);}main(){inta=8;/*a为局部变量*/printf("%d",max(a,b));}运行结果为8第页7.2.2全局变量【例】外部变量定义点之前对外部变量的引用。intf1(

8、intx,inty){externintc;c=x+y;return(x-y);}main(){intx1,x2,x3;externintc;scanf("%d,%d",&x1,&x2);x3=f1(x1,x2);printf("%d,%d",c,x3);}intc;运行情况如下:12,2436,-12第页7.2.2全局变量程序中,由于外部变量c定义在函数f1和main之后,因此在函数f1和main引用外部变量c之前,应该用“extern”进行外部变量说明,说明c是外部变量。如

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。