二C课件 第十七课.ppt
上传人:yy****24 上传时间:2024-09-10 格式:PPT 页数:31 大小:354KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

二C课件 第十七课.ppt

二C课件第十七课.ppt

预览

免费试读已结束,剩余 21 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

12变量的作用域和存储类别变量是对程序中数据的存储空间的抽象变量的属性数据类型:变量所持有的数据的性质(操作属性)存储属性存储器类型:寄存器、静态存储区、动态存储区生存期:变量在某一时刻存在-------静态变量与动态变量作用域:变量在某区域内有效-------局部变量与全局变量变量的存储类型auto-----自动型register-----寄存器型static------静态型extern-----外部型变量定义格式:[存储类型]数据类型变量表;变量的作用域程序中所声明的在程序的那一部分中是可用的。只有在自己的作用域中才可用。从作用域角度考虑分为:内部变量、外部变量内部变量(局部变量)的作用域:是定义它的函数内或复合语句内,在它的作用域之外,内部变量是不可见的,也就是说,一个函数内定义的内部变量是不能被其它的函数所引用的。特性:有助实现信息隐蔽,即使不同的函数定义了同名的内部变量,也不会相互影响。内部变量---局部变量定义:在函数内定义,只在本函数内有效说明:main中定义的变量只在main中有效不同函数中同名变量,占不同内存单元形参属于局部变量可定义在复合语句中有效的变量局部变量可用存储类型:autoregisterstatic(默认为auto)复合语句中变量#defineN5main(){inti;inta[N]={1,2,3,4,5};for(i=0;i<N/2;i++){inttemp;temp=a[i];a[i]=a[N-i-1];a[N-i-1]=temp;}for(i=0;i<N;i++)printf("%d",a[i]);}外部变量(全局变量)定义:在函数外面定义的变量。外部变量的作用域:对于只有一个源程序文件构成的程序,外部变量的作用域是从定义它的位置开始,直至它所在源程序文件的结束。特点:外部变量的使用增加了函数之间传递数据的途径,在外部变量的作用域内的任何函数都能引用该外部变量,一个函数对外部变量的修改,能影响到其它引用这个变量的函数;因此对外部变量的使用不当,会产生意外的错误。floatmax,min;floataverage(intn){inti;floatx;scanf(“%f”,&x);max=min=x;for(i=2;i<n;i++){scanf(“%f”,&x);if(x>max)max=x;elseif(x<min)min=x;sum+=x;}return(sum/n);}main(){intn;floatave;scanf(“%d”,&n);ave=average(n);printf("max=%6.2f\nmin=%6.2f\naverage=%6.2f\n",max,min,ave);}inta=3,b=5;max(inta,intb){intc;c=a>b?a:b;return(c);}main(){inta=8;printf(“a=%d\n,b=%d\n,max=%d\n",a,b,max(a,b));}inti;main(){voidprt();for(i=0;i<5;i++)prt();}voidprt(){for(i=0;i<5;i++)printf(“%c”,’*’);printf(“\n”);}外部变量的作用域可以通过关键字“extern”来扩展:intp=1,q=5;floatf1(inta){intb,c;…….}intf3(){…..}charc1,c2;charf2(intx,inty){inti,j;……}main(){intm,n;…….}main(){voidgx(),gy();externintx,y;printf(“1:x=%d\ty=%d\n”,x,y);y=246;gx();gy();}voidgx(){externintx,y;x=135;printf(“2:x=%d\ty=%d\n”,x,y);}intx,y;voidgy(){printf(“3:x=%d\ty=%d\n”,x,y);}intglobal;/*定义*/externfloatx;/*说明*/main(){intlocal;...}应尽量少使用全局变量,因为:全局变量在程序全部执行过程中占用存储单元降低了函数的通用性、可靠性,可移植性降低程序清晰性,容易出错C语言中,按作用域的大小,可将变量的作用域分为四个级别:程序级、文件级、函数级、复合语句级。这是由C程序的结构特点所决定的。5.3.2变量的存储类别------动态变量