变量的存储类型AUTO、static、extern、register介绍.doc

变量的存储类型AUTO、static、extern、register介绍.doc

ID:57735507

大小:15.50 KB

页数:2页

时间:2020-09-02

变量的存储类型AUTO、static、extern、register介绍.doc_第1页
变量的存储类型AUTO、static、extern、register介绍.doc_第2页
资源描述:

《变量的存储类型AUTO、static、extern、register介绍.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、变量的存储类型AUTO、static、extern、register介绍从变量的生命期(即时间)角度来分,可以分为静态存储变量和动态存储变量。所谓静态存储变量通常是在变量定义时就分配存储单元并一直保持不变,直至整个程序执行结束。全局变量即属于此类存储方式。而动态存储变量是在程序执行过程中,使用它时才分配存储空间,使用完毕立即释放。典型的例子就是函数的形参,在函数定义时,并不给形参分配存储单元,只是在函数调用时才给予分配,调用函数完毕立即释放。如果一个函数被多次调用,则反复的分配、形参变量的存储单元。变量的初值、作用域和生命周期受变量的定义位置(全局

2、、局部)和存储类型(自动、静态、外部、存储器类型)的影响。变量定义的完整形式应为:[存储类型说明符]数据类型说明符变量名变量的存储包括:自动型(auto)、静态型(static)、外部型(extern)、寄存器型(register)1、自动变量(auto)C语言规定,函数内凡未加存储类型说明的变量均视为自动变量。自动变量具有以下特点:(1)自动变量的作用域仅局限于定义该变量的个体内。在函数中定义的自动变量,只在该函数内有效。在复合语句中定义的自动变量只在该复合语句中有效。(2)自动变量属于动态存储方式,只有在使用它时,即定义该变量的函数被调用时才给

3、它分配存储单元,开始它的生命期。函数调用结束,释放存储单元,结束生命期。因此函数调用结束之后,自动变量的值不再保留。在复合语句中定义的自动变量,在退出复合语句后也不能在使用,否则将引起错误。2、外部变量(extern)需要注意的是,外部变量的说明要应用在全局变量上。对全局变量进行外部变量说明后,可以扩大其作用域。例如,在同一程序文件中,如果全局变量的定义在后,而引用它的函数在前,只需将该变量说明为extern,则位置靠前的函数就会引用它。又如,当一个文件分散在几个程序文件中时,若一个程序文件中已经定义了某个全局变量,则另一个程序文件只要对该变量进行

4、extern说明,而不必另行定义,就可以引用该变量,从而实现数据共享的目的。3、静态变量(static)静态变量属于静态存储方式,但是属于静态存储方式的不一定是静态变量。例如全局变量。静态局部变量具有以下特点:(1)静态局部变量在函数内定义,但不同于自动变量,它在整个源程序执行过程中始终存在着,也就是说它的生命期为整个源程序。(2)静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后,尽管该变量还继续存在,但不能使用它。(3)允许对构造类(如数组)静态局部量赋初值,若未赋以初值,则系

5、统自动赋0值。对于基本类型的静态局部变量,若在说明是未赋以初值,则系统自动赋予初值0,自动变量(auto)若不赋初值,则其值是不定的。静态全局变量特点:非静态全局变量的作用域是整个源程序,即当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则对其作用域作了限制,即只在定义该变量的源文件内有效,在同一源程序的其他源文件内中不能使用它。从以上分析,把局部变量改变为静态局部变量后改变了它的存储方式,即改变了它的生命周期,把全局变量改变为静态全局变量,改变了它的作用域,限制了它的使用范围,应予以注意。4、寄存器变量(r

6、egister)上述各类变量都放在存储器内,因此当对一个变量频繁读写时,必须要反复访问内存储器,从而花费大量的存取时间。为此,C语言提供了另一种变量,即寄存器变量。这种变量存放在CPU的寄存器,使用时不需要访问内存,而直接从寄存器中读写,这样可以提高效率。对于循环次数较多的循环控制变量及循环体内反复使用的变量均可定义为寄存器变量。寄存器变量在使用时,还需要注意以下几点:(1)只有局部自动变量和形式参数才可以定义为寄存器变量,因为寄存器变量属于动态存储方式。凡是静态存储方式的变量均不能定义为寄存器变量。(2)一个计算器系统中寄存器的数量是有限的,因此

7、不能定义任意多个寄存器变量,而且对于不同的系统来说,所允许使用的最大寄存器的数量也是不同的。

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

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

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