第七章 变量的作用域与存储方式精选PPT.ppt
《第七章 变量的作用域与存储方式精选PPT.ppt》由会员分享,可在线阅读,更多相关《第七章 变量的作用域与存储方式精选PPT.ppt(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七章 变量的作用域与存储方式第1页,本讲稿共20页变量的属性变量的属性数据类型数据类型:变量所持有的数据的性质(:变量所持有的数据的性质(操作属性操作属性)存储属性存储属性:存储器类型:存储器类型:寄存器、静态存储区、动态存储区寄存器、静态存储区、动态存储区生存期生存期:变量在某一时刻存在:变量在某一时刻存在静态变量与动静态变量与动 态变量态变量作用域作用域:变量在某区域内有效:变量在某区域内有效局部变量与全局部变量与全 局变量局变量变量定义格式:变量定义格式:存储类型存储类型 数据类型数据类型 变量表变量表;例:例:int sum;extern int a,b,c;register int
2、 i;static float x,y;第2页,本讲稿共20页变量的作用域变量的作用域w变量的作用域:变量有效的范围。变量的作用域:变量有效的范围。w语言中所有的变量都有自己的作用域。语言中所有的变量都有自己的作用域。w变量说明的方式不同,其作用域也不同。变量说明的方式不同,其作用域也不同。w语言的变量,按作用域范围可分为两种:语言的变量,按作用域范围可分为两种:局部变量和全局变量。局部变量和全局变量。第3页,本讲稿共20页局部变量局部变量内部变量内部变量w定义:在函数内定义,只在本函数内有效定义:在函数内定义,只在本函数内有效w说明:说明:main中定义的变量只在中定义的变量只在main中有
3、效中有效不同函数中同名变量,占不同内存单元不同函数中同名变量,占不同内存单元形参属于局部变量形参属于局部变量可定义在复合语句中有效的局部变量可定义在复合语句中有效的局部变量float f1(int a)int b,c;.char f2(int x,int y)int i,j;main()int m,n;.a,b,c有效有效x,y,i,j有效有效m,n有效有效第4页,本讲稿共20页例:不同函数中同名变量例:不同函数中同名变量main()int a,b;a=3;b=4;printf(main:a=%d,b=%dn,a,b);sub();printf(main:a=%d,b=%dn,a,b);sub
4、()int a,b;a=6;b=7;printf(sub:a=%d,b=%dn,a,b);运行结果:运行结果:main:a=3,b=4sub:a=6,b=7main:a=3,b=4第5页,本讲稿共20页全局变量全局变量外部变量外部变量n定义:在函数外定义,可为本文件所有函数共用。定义:在函数外定义,可为本文件所有函数共用。n有效范围:从定义变量的位置开始到本源文件结束,及有效范围:从定义变量的位置开始到本源文件结束,及有有extern声明的其它源文件。声明的其它源文件。应尽量少使用全局变量,因为:应尽量少使用全局变量,因为:全局变量在程序全部执行过程中占用存储单元全局变量在程序全部执行过程中占
5、用存储单元降低了函数的通用性、可靠性,可移植性降低了函数的通用性、可靠性,可移植性降低程序清晰性,容易出错降低程序清晰性,容易出错 定义定义 声明声明次数:次数:只能只能1次次 可声明多次可声明多次位置:位置:所有函数之外所有函数之外 函数内或函数外函数内或函数外分配内存:分配内存:分配内存分配内存,可初始化可初始化 不分配内存不分配内存,不可初始化不可初始化 外部变量声明:外部变量声明:extern 数据类型数据类型 变量表;变量表;外部变量定义与外部变量声明不同外部变量定义与外部变量声明不同 若外部变量与局部变量同名,则外部变量被屏蔽若外部变量与局部变量同名,则外部变量被屏蔽第6页,本讲稿
6、共20页int a=3,b=5;max(int a,int b)int c;c=ab?a:b;return(c);main()int a=8;printf(max=%d,max(a,b);例:外部变量与局部变量例:外部变量与局部变量运行结果:运行结果:max=8例:外部变量定义与声明例:外部变量定义与声明extern int a,b;int max()int z;z=ab?a:b;return(z);main()printf(max=%d,max();int a=13,b=-8;外部变量定义及初始化外部变量定义及初始化外部变量声明外部变量声明运行结果:运行结果:max=13第7页,本讲稿共20
7、页int p=1,q=5;float f1(int a)int b,c;.int f3().char c1,c2;char f2(int x,int y)int i,j;main()int m,n;.c1,c2的作用范围的作用范围p,q的作用范围的作用范围extern char c1,c2;extern char c1,c2;c1,c2的的作作用用范范围围扩扩展展后后c1,c2的的作作用用范范围围扩扩展展后后第8页,本讲稿共20页main()void gx(),gy();extern int x,y;printf(“1:x=%dty=%dn”,x,y);y=246;gx();gy();void
8、 gx()extern int x,y;x=135;printf(“2:x=%dty=%dn”,x,y);int x,y;void gy()printf(“3:x=%dty=%dn”,x,y);例:用例:用extern扩展外部变量作用域扩展外部变量作用域运行结果:运行结果:1:x=0 y=02:x=135 y=2463:x=135 y=246第9页,本讲稿共20页引用其它文件中的外部变量引用其它文件中的外部变量int global;extern float x;main()int local;.extern int global;static int number;func2().float
9、x;unc3()extern int global;.file1.cfile2.cfile3.c第10页,本讲稿共20页变量的存储类型变量的存储类型程序区程序区静态存储区静态存储区动态存储区动态存储区全局变量、局部静态变量全局变量、局部静态变量形参变量形参变量局部动态变量(局部动态变量(auto register)函数调用现场保护和返回地址等函数调用现场保护和返回地址等内存用户区内存用户区第11页,本讲稿共20页n动态变量与静态变量动态变量与静态变量存储方式存储方式w静态存储:程序运行期间分配固定存储空间静态存储:程序运行期间分配固定存储空间w动态存储:程序运行期间根据需要动态分配存储空间动态
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七章 变量的作用域与存储方式精选PPT 第七 变量 作用 存储 方式 精选 PPT
限制150内