C08作用域和存储类别ppt课件.ppt

C08作用域和存储类别ppt课件.ppt

ID:59448040

大小:303.50 KB

页数:35页

时间:2020-09-18

C08作用域和存储类别ppt课件.ppt_第1页
C08作用域和存储类别ppt课件.ppt_第2页
C08作用域和存储类别ppt课件.ppt_第3页
C08作用域和存储类别ppt课件.ppt_第4页
C08作用域和存储类别ppt课件.ppt_第5页
资源描述:

《C08作用域和存储类别ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八章用户标识符的作用域和存储类教学目标掌握作用域与生存期的概念;了解动态存储区与静态存储区的概念;掌握4种存储类别(auto,register,static,extern);掌握局部变量的作用域、生存期及其使用特点;掌握全局变量的作用域、生存期及其使用特点;了解函数的存储分类(extern,static)。基本要求能够熟练地阅读有关的应用程序,能够利用不同的存储属性来灵活地编写有关的应用程序。8.1局部变量、全局变量和存储分类在C语言中,由用户命名的标识符都有一个有效的作用域。所谓“作用域”是指程序中

2、的某一部分,只有在这一部分中,该标识符才是有定义的,即只有在这个域中才能使用该标识符。例如,在某一函数内定义的变量,只能在该函数内进行使用。显然,变量的作用域与其定义语句在程序中出现的位置有直接的关系,由此可以将变量划分为局部变量和全局变量。1.用户标识符的作用域定义:在函数内定义的变量,只在本函数内有效。说明:①在main函数中定义的变量只能在main函数内有效;②不同函数中的同名变量,占不同的内存单元。③函数的形参属于局部变量;④可以定义只在某个复合语句内有效的局部变量。floatf1(inta){

3、intb,c;…….}charf2(intx,inty){inti,j;……}main(){intm,n;…….}a,b,c有效x,y,i,j有效m,n有效2.局部变量(也称内部变量)例不同函数中同名变量main(){inta,b;a=3;b=4;printf("main:a=%d,b=%d",a,b);sub();printf("main:a=%d,b=%d",a,b);}sub(){inta,b;a=6;b=7;printf("sub:a=%d,b=%d",a,b);}例复合语句中的变量

4、#defineN5main(){inti;inta[N]={1,2,3,4,5};for(i=0;i

5、到本源文件结束,及有extern声明的其它源文件。3.全局变量(也称外部变量)外部变量定义外部变量声明次数:只能1次可说明多次位置:所有函数之外函数内或函数外分配内存:分配内存,可初始化不分配内存,不可初始化外部变量定义与外部变量声明的区别:全局变量示例inta,b;main(){a=3;b=4;printf("main:a=%d,b=%d",a,b);sub();printf("main:a=%d,b=%d",a,b);}sub(){inta;a=6;b=7;printf("sub:a=%d,

6、b=%d",a,b);}若外部变量与局部变量同名,则外部变量被屏蔽。尽量少用全局变量全局变量在程序全部执行过程中始终占用存储单元;降低了函数的通用性、可靠性,可移植性;降低了程序清晰性,容易出错。运行结果:main:a=3,b=4sub:a=6,b=7main:a=3,b=7变量的属性数据类型:变量所持有的数据的性质(操作属性)存储属性:存储器类型:寄存器、静态存储区、动态存储区生存期:变量在某一时刻存在-------静态变量与动态变量作用域:变量在某区域内有效-------局部变量与全局变量指定变

7、量的存储类型时所要用的关键字auto-----自动型(缺省值)register-----寄存器型static------静态型extern-----外部型变量定义格式:[存储类型]数据类型变量表;如:intsum;autointa,b,c;registerinti;staticfloatx,y;4.变量的存储属性静态存储:程序运行期间分配固定地存储空间动态存储:程序运行期间根据需要动态地分配存储空间寄存器:程序运行期间动态地占用CPU的内部寄存器5.变量的存储类型程序代码区静态存储区动态存储区全局变量、

8、静态局部变量形参变量动态局部变量(auto、register)函数调用现场保护和返回地址等计算机内存分系统区和用户区操作系统区静态变量的生存期:从程序开始执行到整个程序运行结束。动态变量的生存期:从包含该变量定义的函数开始执行至该函数执行结束。6.变量的生存期inta;main(){…….…….f2;…….f1;…….}f1(){autointb;………f2;……..}f2(){staticintc;………}c作用域b作用域a作用域main

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

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

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