变量存储类型.ppt

变量存储类型.ppt

ID:55035748

大小:871.50 KB

页数:39页

时间:2020-05-08

变量存储类型.ppt_第1页
变量存储类型.ppt_第2页
变量存储类型.ppt_第3页
变量存储类型.ppt_第4页
变量存储类型.ppt_第5页
资源描述:

《变量存储类型.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、CProgramming李松绿延边科学技术大学--第五章变量的储存类型目录变量的储存类型自动型变量静态型变量寄存器型变量外部参照型变量YBUST21.变量的储存类型可以存放数据的空间计算机的寄存器内存一般数据区堆栈区储存类型用户可以通过定义变量的储存类型来选择变量的储存地点YBUST31.变量的储存类型变量的储存类型YBUST4分类储存地址生存期适用范围auto自动型stack内存堆栈区暂时性只适用于变量定义的域内static静态型一般内存数据区永久性只适用于变量定义的域内,但在域外仍能保存其变量值register寄

2、存器型CPU的通用寄存器暂时性只适用于变量定义的域内extern外部参照型一般内存数据区永久性适用于程序的所有文件目录变量的储存类型自动型变量静态型变量寄存器型变量外部参照型变量YBUST52.自动型变量自动型变量(automaticvariable)又称堆栈型,分配在内存的堆栈区堆栈区—stack领域储存方式--LIFO(lastinfirstout)只适用于函数内部或函数的特定域内localvariable工作原理执行:调用函数时,将在堆栈区给变量分配内存结束:结束函数时,收回分配给该变量的内存YBUST62.自

3、动型变量堆栈区(stack)的原理--PUSHYBUST71020103020102030堆栈区领域PUSH10PUSH30PUSH20102.自动型变量堆栈区(stack)的原理--POPYBUST8201020POP2030102030POP3010POP10102.自动型变量形式(auto)数据类型变量1,变量2,…;(auto)数据类型变量1=常数1,变量2=常数2,…;特征定义在函数内部执行完后,自动消失定义自动型数组变量时,不能同时赋予初始值没有给自动型变量赋予初始值的时候,无法确认其变量值这样的状态叫g

4、arbage省略‘auto’时,程序照样识别成自动型变量利用自动型变量可以节省内存空间YBUST92.自动型变量例1YBUST10main(){autointa,b;autofloatc=3.1415;chard,e;}定义自动型变量赋予初始值省略auto也能被识别成自动型变量跳出函数域({})时,变量会自动消失2.自动型变量例2YBUST11main(){autointa[10];floatb[5];}定义整型数组a[0],a[1],…,a[9]定义省略auto的实型数组b[0],b[1],…,b[4]定义自动型变

5、量数组时,不能同时赋予初始值YBUST12Program5.12.自动型变量#includemain(){inta=10;printf(“main-a=%d“,a);sub();printf(“main-a=%d”,a);}sub(){inta=20;printf(“sub-a=%d”,a);}main-a=10sub-a=20main-a=10YBUST13Program5.22.自动型变量#includemain(){inta=35;if(a>10){inta=30

6、;printf(“(1)a=%d”,a);}printf(“(2)a=%d”,a);}a=30a=35YBUST14Program5.32.自动型变量#includemain(){autointa;autointb;printf(“a=%d”,a);printf(“b=%d”,b);}a=208b=0YBUST15Program5.42.自动型变量#includemain(){inta=10;intb=40;{inta=20;{inta=30;printf(“Blo

7、ck(3)a=%d”,a);printf(“Block(1)b=%d”,b);}printf(“Block(2)a=%d”,a);}printf(“Block(1)a=%d”,a);}Block(3)a=30Block(1)b=40Block(2)a=20Block(1)a=10目录变量的储存类型自动型变量静态型变量寄存器型变量外部参照型变量YBUST163.静态型变量静态型变量(staticvariable)分配在内存的数据区中外部静态型变量,内部静态型变量工作原理第一次调用函数时分配内存调用结束时

8、并不回收内存,而是继续保留其中的值第二次调用函数时将不再分配内存上次调用函数结束时保留的值可以继续使用只有程序运行结束后,才释放所占用的内存形式static数据类型变量1,变量2,…;YBUST173.静态型变量例1YBUST18staticinta=10,b=20;main(){staticfloatc,d,e;}外部静态型变量内部静态型变量

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

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

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