全国计算机二级C语言程序设计讲义 变量的存储类别.ppt

全国计算机二级C语言程序设计讲义 变量的存储类别.ppt

ID:56463214

大小:86.50 KB

页数:29页

时间:2020-06-19

全国计算机二级C语言程序设计讲义  变量的存储类别.ppt_第1页
全国计算机二级C语言程序设计讲义  变量的存储类别.ppt_第2页
全国计算机二级C语言程序设计讲义  变量的存储类别.ppt_第3页
全国计算机二级C语言程序设计讲义  变量的存储类别.ppt_第4页
全国计算机二级C语言程序设计讲义  变量的存储类别.ppt_第5页
资源描述:

《全国计算机二级C语言程序设计讲义 变量的存储类别.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第14章变量的存储类别及 内部、外部函数一、变量的存储类型1、自动变量2、静态变量3、寄存器变量4、外部变量二、内部函数和外部函数1、内部函数2、外部函数对变量的定义需要给出两方面的属性:指变量的名称、类型、取值范围和占据存贮空间的大小。如整型,实型,字符型等。变量存在的时间(生存期)、作用范围和在硬件中存放的地点(区域)。数据类型:存储类别:变量定义的一般形式为:一、变量的存储类型内存中供用户使用的空间有三部分:用户区程序区静态存储区动态存储区存放程序的可执行代码。存放全局变量和静态局部变量。存放函数调用时调用函数的现场保护、自动局部变量和函数形参。1、自动变量用关键字au

2、to作存储类型说明的局部变量(包括形参)称为自动变量。自动变量存放在动态存储区,都是动态分配存储空间的。C语言规定:在局部变量的定义中,可省略关键字auto。即:没有指明存储类别的变量,一律隐含为:自动变量。例:main(){intx,y;······}inthanshu(autointa){autointb,c,d;······}例自动变量的特点示例。#includevoidf(intn){autoints=0;/*auto可以省略*/s=s+1;printf("No.%d:s=%d",n,s);}voidmain(){intnum;for(num=1

3、;num<4;num++)f(num);}程序运行结果:NO.1:s=1NO.2:s=1NO.3:s=12、静态变量所有全局变量和用关键字static作存储类型说明的局部变量称为静态变量。静态变量存放在静态存储区,一旦为其分配了存储单元,它们在整个程序执行期间将固定地占用这些存储单元。由于所有全局变量都是静态类的,C规定,在定义全局变量时“static”可以省去不写。静态全局变量仅能为本源文件中各函数使用,不能为本源文件以外的其他源文件使用。静态变量举例inthanshu(intx) {staticintm,n=5;/*定义m,n为静态局部变量*/inty=0;printf(

4、"m=%d,n=%d,y=%d",m,n,y);m++;n++;y++;return(x+y+m+n);}main(){inta=2,k;for(k=1;k<=3;k++)printf("%d)hanshu(%d)=%d",k,a,hanshu(a));}程序运行结果:m=0,n=5,y=01)hanshu(2)=10m=1,n=6,y=02)hanshu(2)=12m=2,n=7,y=03)hanshu(2)=14例局部静态变量的特点示例。#includevoidf(intn){staticints=0;s=s+1;printf("No.%d:s=

5、%d",n,s);}voidmain(){intnum;for(num=1;num<4;num++)f(num);}程序运行结果:NO.1:s=1NO.2:s=2NO.3:s=3静态变量的特点:静态局部变量在整个程序运行期间固定占有存储单元。静态局部变量和全局变量一样,只在编译时赋初值一次,以后每次函数调用时使用上次函数调用结束时的保留值。静态局部变量定义时如不赋初值,系统编译时会自动对数值型静态局部变量赋初值为0;对字符型静态局部变量赋初值为空字符。静态局部变量仅能为本函数使用,其他函数不能使用和影响它们。自动变量和静态局部变量区别:自动变量的值在函数调用结束后不再保留

6、,下次调用不能使用已有的值。静态局部变量在函数调用结束后,仍然保留上次调用结束的值。在选择使用静态局部变量还是自动变量,可以从以下两点考虑:如果需要在两次函数调用之间保持上一次函数调用结果,可以使用局部静态变量;如果在每次调用函数时都必须对局部变量初始化,选择自动变量。但是实际上局部静态变量占用内存时间较长,并且可读性差,因此,除非必要,尽量避免使用局部静态变量。3、寄存器变量(register)寄存器变量:用关键字register作存储类型说明的局部变量。说明:寄存器变量只能用于基本整型变量、短整型整型变量和字符型变量。寄存器变量的分配方式是动态分配的。由于CPU中的通用寄

7、存器数目有限,通常只把少数使用频繁的变量定义为寄存器变量。对超出寄存器数目的寄存器变量作一般自动变量处理。例求n!的函数intfac(intn) {registerinti,f=1;/*定义i,f为寄存器变量*/for(i=1;i<=n;i++) f=f*i; returnf; }main(){intk;for(k=1;k<=5;k++)printf("%d!=%d",k,fac(k));}4、外部变量(extern)外部变量是指在函数之外定义的变量。外部变量也称全局变量。它的作用域通常从变量的定义

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

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

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