用户标识符的作用域和存储类.ppt





《用户标识符的作用域和存储类.ppt》由会员分享,可在线阅读,更多相关《用户标识符的作用域和存储类.ppt(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C C语言中用户标识符的作用域和存储类别语言中用户标识符的作用域和存储类别1 1 局部变量、全局变量和存储分类局部变量、全局变量和存储分类2 2 局部变量及其作用域和生存期局部变量及其作用域和生存期3 3 全局变量及其作用域和生存期全局变量及其作用域和生存期4 4 函数的存储分类函数的存储分类局部变量与全局变量局部变量与全局变量局部变量局部变量-内部变量内部变量v定义:在定义:在函数内部或复合语句内部定义的变量函数内部或复合语句内部定义的变量v说明:说明:lmain中定义的变量只在中定义的变量只在main中有效中有效l形参属于局部变量形参属于局部变量l局部变量可用存储类型局部变量可用存储类型:
2、auto register static(默认为默认为auto)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有效有效例例 复合语句中变量复合语句中变量#define N 5main()int i;int aN=1,2,3,4,5;for(i=0;iN/2;i+)int temp;temp=ai;ai=aN-i-1;aN-i-1=temp;for(i=0;il用用Extern声明外部变量:声明外部变量:extern 数据数据类型类型 变量表;变量表;l外部变量定
3、义与外部变量说明不同外部变量定义与外部变量说明不同l若外部变量与局部变量同名,则外部变量被屏蔽l外部变量可用存储类型外部变量可用存储类型:缺省缺省 或或 static变量的存储属性变量的存储属性概述概述v变量是对程序中数据的存储空间的抽象变量是对程序中数据的存储空间的抽象内存.main()int a;a=10;printf(“%d”,a);编译或函数调用时为其分配内存单元1020002001程序中使用变量名对内存操作v变量的属性变量的属性l数据类型:变量所持有的数据的性质(数据类型:变量所持有的数据的性质(操作属性操作属性)l存储属性存储属性u存储器类型:寄存器、静态存储区、动态存储区存储器类
4、型:寄存器、静态存储区、动态存储区u生存期生存期:变量在某一时刻存在:变量在某一时刻存在-静态变量与动态静态变量与动态变量变量u作用域作用域:变量在某区域内有效:变量在某区域内有效-局部变量与全局局部变量与全局变量变量v变量的存储类型变量的存储类型lauto -自动型自动型lregister-寄存器型寄存器型lstatic -静态型静态型lextern -外部型外部型v变量定义格式变量定义格式:存储类型存储类型 数据类型数据类型 变量表变量表;变量的存储属性概述v变量是对程序中数据的存储空间的抽象如如:int sum;auto int a,b,c;register int i;static f
5、loat x,y;float max,min;float average(float array,int n)int i;float sum=array0;max=min=array0;for(i=1;imax)max=arrayi;else if(arrayimin)min=arrayi;sum+=arrayi;return(sum/n);main()int i;float ave,score10;/*Input */ave=average(score,10);printf(max=%6.2fnmin=%6.2fn average=%6.2fn,max,min,ave);作用域maxmin增
6、加了函数间数据联系的渠道v存储方式存储方式l静态存储:程序运行期间分配固定存储空间静态存储:程序运行期间分配固定存储空间l动态存储:程序运行期间根据需要动态分配存储空间动态存储:程序运行期间根据需要动态分配存储空间具体包括:自动的具体包括:自动的(auto)静态的静态的(static)寄存器的寄存器的(register)外部的外部的(extern)v内存用户区内存用户区程序区程序区静态存储区静态存储区动态存储区动态存储区全局变量、局部静态变量全局变量、局部静态变量形参变量形参变量局部动态变量(局部动态变量(auto register)函数调用现场保护和返回地址等函数调用现场保护和返回地址等v生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 用户 标识符 作用 存储

限制150内