C语言教程同步课件10讲(第7章).ppt

C语言教程同步课件10讲(第7章).ppt

ID:55827801

大小:219.00 KB

页数:32页

时间:2020-06-09

C语言教程同步课件10讲(第7章).ppt_第1页
C语言教程同步课件10讲(第7章).ppt_第2页
C语言教程同步课件10讲(第7章).ppt_第3页
C语言教程同步课件10讲(第7章).ppt_第4页
C语言教程同步课件10讲(第7章).ppt_第5页
资源描述:

《C语言教程同步课件10讲(第7章).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十讲作用范围和存储类别第十讲作用范围和存储类别作用范围存储类别包含多个源文件的程序C语言程序设计2简介变量定义的完整格式:<存储类别><数据类型><变量名>数据类型占据存储空间的大小取值范围存储类别在内存中持续的时间(生存期)在硬件中存放的位置其它属性作用范围可以被引用的程序部分(可见性)作用范围和存储类别3标识符的作用域标识符的作用域是指一个标识符,包括变量名、函数名等,在程序中可以被使用的范围。(在这个范围内引用该标识符是合法的,而在这个范围之外,该标识符是不能被引用的)在C语言中可以在函数内部、函数外部以及函数的参数中定义变量,定义的位

2、置不同,变量的作用域也不同。变量的作用域也称为可见性,变量的声明方式不同,其作用域也不同。C语言中的变量,按作用域范围可分为两种,即局部变量和全局变量。作用范围和存储类别4局部变量在一个函数内部定义的变量被称作局部变量(形式参数也是局部变量),这种变量的作用域是在本函数范围内,即从变量定义的位置开始,到函数体结束。通俗一点说,局部变量只能在定义它的函数内部使用,而不能在其它函数内使用这个变量。作用范围和存储类别5局部变量说明:1、main函数也是一个函数,它内部定义的变量也只能在main函数内部使用,不能在其它函数中使用。同样,主函数中也不能使

3、用其他函数中定义的变量。2、不同的函数中可以使用同名的变量,这些局部变量代表不同的对象,分配不同的存储单元,不会互相干影响。3、形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。4、在复合语句内部也可以定义变量,这些变量的作用域只在本复合语句中。作用范围和存储类别6例intfun_a(inta){intb,c;......}intfun_b(intx){inty,z;}main(){intm,n;}a,b,c作用域在fun_a内同样,x,y,z作用域在fun_b内m,n作用域在main内main(){ints,a;......

4、{intb;s=a+b;......}......}b的作用域在复合语句内s,a的作用域在main内例作用范围和存储类别10-1.c#includefun(){intn=6;printf("ninfun:%d",n);}voidmain(){intn=3;fun();printf("ninmain:%d",n);}10-2.c#includevoidmain(){inti=2,j=3,k;k=i+j;{intk=8;if(i=3)printf("%d",k);}printf("%d%d",

5、i,k);}8全局变量在函数外定义的变量称为全局变量,也称为外部变量。全局变量的作用域是从定义变量的位置开始到本源文件结束。这样全局变量可以让很多函数都使用它。全局变量一经定义,编译系统会为其分配固定的内存单元,在程序运行时始终都占用固定内存单元。作用范围和存储类别9全局变量说明:1、对于局部变量的定义和说明,可以不加区分。而对于全局变量则不然,全局变量的定义和全局变量的说明并不是一回事。全局变量定义必须在所有的函数之外,且只能定义一次。当需要在全局变量定义位置之前引用它,应该使用extern对该变量进行声明,即可在同一文件内部扩展全局变量的作

6、用域。全局变量声明的格式为:extern类型说明符变量名;2、全局变量的初始化只能有一次,是在对全局变量进行定义的时候。3、全局变量的作用是使得函数间多了一种传递信息的方式。如果在一个程序中各个函数都要对同一个信息进行处理,就可以将这个信息定义成全局变量。另外,采用这种方式,可以从某个函数内部得到多个计算值。(注,使用全局变量会使函数的独立性降低,因此在不必要时尽量不要使用全局变量)4、在同一个源文件中,如果局部变量和全局变量重名,则在局部变量的作用域内,全局变量不起作用。作用范围和存储类别10例inta,b;voidfun1(){......

7、}floatx,y;intfun2(){......}main(){......}全局变量a,b作用域全局变量x,y作用域10-3.c#includeintX=1;printx();voidmain(){printf("Xinmain:%d",X);printx();printf("Xinmain:%d",X);}printx(){intX=2;printf("Xinprintx:%d",X);}变量的存储类别求1-5的阶乘,并将它们依次输出。10-4.c#includevoidfac(intn)

8、{staticintf=1;f=f*n;printf("%d!=%d",n,f);}voidmain(){inti;for(i=1;i<=5;i+

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

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

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