c语言变量的存储属性和预编译命令

c语言变量的存储属性和预编译命令

ID:36291049

大小:436.31 KB

页数:27页

时间:2019-05-08

c语言变量的存储属性和预编译命令_第1页
c语言变量的存储属性和预编译命令_第2页
c语言变量的存储属性和预编译命令_第3页
c语言变量的存储属性和预编译命令_第4页
c语言变量的存储属性和预编译命令_第5页
资源描述:

《c语言变量的存储属性和预编译命令》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、9.1变量的存储属性存储位置:主存、寄存器生存期:永久生存期、动态生存期永久生存期:为程序执行的整个过程,在该过程中占有固定的存储空间。动态生存期:只在程序执行的某一段时间内存在。变量的作用域:局部变量和全局变量局部变量:在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,在复合语句中定义的变量只在本复合语句中有效。全局变量:在函数之外定义的变量称外部变量,外部变量是全局变量(全程变量)。它的有效范围为从定义变量的位置开始到本源文件结束局部变量和全局变量——从变量的作用域角度分类例2.voidmain(){intx=7,y=3;f();

2、printf("%d,%d",x,y);}f(){intx=8,y=5;if(x>y){intt;t=x;x=y;y=t;}printf("%d,%d",x,y);}此二函数中x、y无任何关系复合语句输出:5,87,3局部变量局部变量(一)局部变量:形参、函数体中定义的变量作用范围:某个局部也称为内部变量,在函数内定义,作用域仅限于函数内,离开该函数后再使用这种变量是非法的。1)主函数中定义的变量也只能在主函数中使用,不能在其它函数中使用。同时,主函数中也不能使用其它函数中定义的变量。2)形参变量是属于被调函数的局部变量,实参变量是属于

3、主调函数的局部变量。例如:intf1(inta)/*函数f1*/{intb,c;……}intf2(intx)/*函数f2*/{inty,z;……}main(){intm,n;……}a,b,c有效x,y,z有效m,n有效所有变量都是局部变量3)允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。如在前例中,形参和实参的变量名都为m,n,是完全允许的。例21:main(){inti=2,j=3,k;k=i+j;{intk=8;printf("%d",k);}printf("%d",k);}复合语

4、句定义的k起作用,其初值为8,故输出值为8由main定义的k起作用,输出的k应为main所定义的k,输出5。i,j以及main()定义的k有效复合语句定义的k有效运行结果:854)在复合语句中也可定义变量,其作用域只在复合语句范围内。例如:main(){ints,a;……{intb;s=a+b;……}……}b作用域s,a作用域所有变量仍然是局部变量(二)全局变量:在函数之外定义的变量作用范围:从定义点到文件结束也称为外部变量,在函数外部定义的变量,作用域是整个源程序。如果在某个函数中使用后面说明的全局变量,应用说明符extern声明后才能使用,

5、但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。例如:inta,b;voidf1(){……}floatx,y;intfz(){……}main(){……}外部变量外部变量全局变量xy作用域全局变量ab作用域例22.intp=1,q=5;floatf1(a)inta;{externc1……}f2(intk){……}charc1,c2;main(){……}voidf3(){doubles;}C1作用范围c1、c2作用范围p、q作用范围申明C1在其中可以用若同一源文件中、外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。

6、例24.inta=3,b=5;main(){inta=1000;f();printf("main:%d,%",a,b);}f(){printf("f:%d,%",a,b);}结果:f:3,5main:1000,5局部变量例25.外部变量与局部变量同名。inta=3,b=5;max(inta,intb){intc;c=a>b?a:b;return(c);}main(){inta=8;printf("%d",max(a,b));}运行结果:8a,b为外部变量b为外部变量a为局部变量变量的存储类别——动态存储方式与静态存储方式(一)供用户

7、使用的存储空间分为:1.程序区2.静态存储区存放变量、数组等3.动态存储区区别:1)静态存储区:开始执行程序时给变量分配存储区、执行程序完毕释放。2)动态存储区:动态地进行分配和释放。变量分类:从变量值存在时间(生存期)角度分。1)静态存储方式:在程序运行期间分配固定的存储空间的方式。2)动态存储方式:在程序运行期间根据需要进行动态的分配存储空间的方式。静态存储区存放全局变量:在程序开始执行时分配存储区,程序执行完毕就释放。在程序执行过程中它们占据固定的存储单元,而不动态地进行分配和释放。动态存储区存放以下数据:1)函数形式参数;2)自动变量(

8、未加static声明的局部变量);3)函数调用时的现场保护和返回地址。对以上这些数据,在函数开始调用时分配动态存储空间,函数结束时释放这些空间。(二)

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

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

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