静态变量的用法 静态变量的用法 静态变量有什么特点

静态变量是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量,以下是由小编整理关于静态变量的用法的内容,希望大家喜欢!

静态变量的用法

静态变量也可以用于存储常数。具体来说,静态变量(全局变量及汇编语言里定义的符号亦同)可用const,constant或final(根据语言决定)等关键字标识,这时其值就会在编译时(英语:Compile time)设定,并且无法在运行时改变。编译器通常将静态常量与文本一起置于目标文件的文本区域,而非常量初始化数据则置于数据区;而如若有需要,有些编译器还可选择为其开辟专用区;为防止常数变量被错误的指针写入覆盖,亦可在这块区域启用内存保护机制。

静态变量的概念定义

“静态变量”这一术语有两个容易混淆的定义:

语言无关的通用定义:与程序有着相同生命周期(英语:Object lifetime)的变量;

C族语言特有的定义:以static存储类声明的变量。

静态变量的用法 静态变量的用法 静态变量有什么特点

而在以Pascal为代表的许多程序语言中,所有局部变量都由系统自动分配存储空间,而所有全局变量的存储空间则以静态分配的方式获取(对应“静态变量”),因此由于实际上“局部变量”和“全局变量”这两个术语已足以涵盖所有的情况,在这些程序语言中通常不使用“静态变量”这一术语,而直接以“全局变量”代之。一般来说,在这些程序语言中,静态变量就是全局变量,而即使在有明确区分全局和静态变量的程序语言中,在编译后的代码里二者也以相同的方式获取存储空间。而今术语“静态变量”的概念则主要基于C族语言的“static”的定义(即定义2)。

静态变量的特点

静态局部变量属于静态存储方式,它具有以下特点:

(1)静态局部变量在函数内定义,但不像自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。

(2)静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。

(3)允许对构造类静态局部量赋初值。若未赋以初值,则由系统自动赋值。数值型变量自动赋初值0,字符型变量赋空字符。

(4)对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。 根据静态局部变量的特点, 可以看出它是一种生存期为整个源文件的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的值。 因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。

静态变量的不同作用

除明确标识出变量的生命周期(英语:Object lifetime)外,将变量声明为static存储类还会根据变量属性不同而有一些特殊的作用:

对于静态全局变量来说,针对某一源文件的以static声明的文件级变量与函数的作用域只限于文件内(只在文件内可见),也即“内部连接”,因而可以用来限定变量的作用域;

对于静态局部变量来说,在函数内以static声明的变量虽然与自动局部变量的作用域相同(即作用域都只限于函数内),但存储空间是以静态分配而非默认的自动分配方式获取的,因而存储空间所在区域不同(一般来说,静态分配时存储空间于编译时在程序数据段分配,一次分配全程有效;而自动分配时存储空间则是于调用栈上分配,只在调用时分配与释放),且两次调用间变量值始终保持一致;

对于静态成员变量(英语:Member variable)来说,在C++中,在类的定义中以static声明的成员变量属于类变量(英语:Class variable),也即在所有类实例中共享,与之相对的就是过程变量(又称实例变量)(英语:Instance variable)。

  

爱华网本文地址 » http://www.aihuau.com/a/211061/682504228.html

更多阅读

心情糟糕透顶的句子 心情糟糕的句子

有哪些句子可以用来给心情糟糕的人表达心情呢?下面小编给大家分享一些心情糟糕的句子,希望能帮到你!心情糟糕的句子摘抄1. 忘记你,是为了证明我可以忘记你。2. 往事留下我温婉的笑容,覆盖的灰尘早已死去。3. 你又不是我,你凭什么说

安慰心情不好的句子 心情不好的伤心句子

心情不好的时候你会说哪些话呢?小编整理了一些心情不好的伤心句子的句子,有兴趣的亲可以来阅读一下!心情不好的伤心句子大全1. 如果背叛是一种勇气,那么接受背叛则需要一种更大的勇气。前者只需要有足够的勇敢就可以,又或许只是一时

关于爱情的说说 关于等的爱情说说

或许等过才知道该不该等被伤过才知道原来不该伤。那关于等的爱情说说还有哪些呢?下面是小编搜集整理的一些关于等的爱情说说内容,下面就来看看具体的示例句子吧。关于等的爱情说说推荐1) 请记得感恩,因为没有人天生就应该对你好。

关于爱国主义的演讲 有关爱国主义的演讲稿

国强民富要凭借我们永不言败、敢于拼搏、积极向上的民族精神。而民族精神的核心内容就是爱国主义精神。小编为大家整理了有关爱国主义的演讲稿3篇,欢迎大家阅读。有关爱国主义的演讲稿篇1尊敬的各位老师、同学们:大家好!今天,我演

腊八节的由来 腊八节日的由来

以下是小编为大家整理的关于腊八节日的由来,供大家参考!腊八节起源:传说一:腊月初八,我国人民有吃腊八粥习俗。 据说腊八粥传自印度。佛教的创始者释迦牟尼本是古印度北部迦毗罗卫国(今尼泊尔境内)净饭王的儿子,他见众生受生老病死等痛

声明:《静态变量的用法 静态变量的用法 静态变量有什么特点》为网友正在更新中分享!如侵犯到您的合法权益请联系我们删除