c语言全局变量.ppt
《c语言全局变量.ppt》由会员分享,可在线阅读,更多相关《c语言全局变量.ppt(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、8.8 局部变量和全局变量局部变量和全局变量8.8.1 局部变量局部变量 定义:在一个函数内部定义,只在本函数范围有效的变量。float f1(int a)int b,c;main ()int m,n;a、b、c有效m、n有效说说 明明1.主函数中定义的变量也只在主函数中有效。2.不同函数中可以使用相同名称的变量。3.形参也是局部变量。4.复合语句中定义的变量只在本复合语句中有效。main ()int a,b;int c;c=a+b;c有效有效a、b有效有效这种复合语句又称为“分程序分程序”或“程序块”。8.8.2 全局变量全局变量 定义:定义:在一个函数之外定义、从定义的位置开始,到源程序的
2、最后都有效的变量,所以也叫外部变量外部变量。int p=1,q=5;/*外部变量*/float f1(int a)/*定义函数f1*/int b,c;char c1,c2;/*外部变量*/char f2(int x,int y)/*定义函数f2*/int i,j;main ()/*主函数*/int m,n;全局变量全局变量c1、c2的的作用范围作用范围全局变量全局变量 p、q的的作用范围作用范围说说 明明1.全局变量的作用范围不同。如p、q和c1、c2的作用范围不同。2.全局变量增加了函数间数据联系的渠道,可以用全局变量从函数得到一个以上的返回值。3.由于全局变量在程序的全过程都占用内存,并且
3、使函数的通用通用性和清晰性降低性和清晰性降低,因此不必要时尽量少用全局变量。4.若在定义点之前的函数想引用该外部变量,则应在该函数中用关键字extern作“外部变量”说明。5.若在同一源文件中外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。求一维数组的平均、最大、最小值。例8.15例8.16例8.178.9 动态存储变量动态存储变量和和静态存储变量静态存储变量8.9.1 变量的变量的存储类别存储类别存放全局变量存放全局变量函数形参变量函数形参变量局部变量(即自动变量,未加局部变量(即自动变量,未加static说明)说明)函数调用时的现场保护函数调用时的现场保护 C语言中每个
4、变量和函数都有数据类型数据类型和数据的存储类别存储类别两个属性。数据类型如整型、字符型等。存储类别指的是数据在内存中存储的方法,包括静态存储类静态存储类和动态存储类动态存储类,具体有以下4种:自动的(自动的(auto)、)、静态的(静态的(static)、)、外部的(外部的(extern)、)、寄存器的(寄存器的(register)。8.9.2 局部变量的存储方式局部变量的存储方式1.函数中的局部变量局部变量若未做专门说明都为动态存储变量,其存储空间的分配与释放由编译系统完成,因此又称为自动变量自动变量,用auto作存储类型的说明,它是系统隐含的存储类型,因而auto可省略。2.局部静态变量局
5、部静态变量用static说明,函数调用结束后,所占用的内存单元不被释放。通过例8.18可了解其特点。例8.18关于关于局部静态变量局部静态变量的说明的说明11)局部静态变量属)局部静态变量属静态存储类别静态存储类别,整个程序运行期间不释放内存;,整个程序运行期间不释放内存;而局部动态变量(而局部动态变量(autoauto)在调用结束后在调用结束后立即释放立即释放。见上表。见上表。22)局部静态变量只在编译时赋)局部静态变量只在编译时赋一次一次一次一次初值;自动变量则在调用初值;自动变量则在调用时赋初值。时赋初值。33)若定义时局部变量)若定义时局部变量不赋初值不赋初值,则:,则:数值型:编译时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 全局变量
限制150内