2023年c语言中什么是静态变量(完整)

上传人:m**** 文档编号:560328898 上传时间:2024-01-09 格式:DOCX 页数:4 大小:12.33KB
返回 下载 相关 举报
2023年c语言中什么是静态变量(完整)_第1页
第1页 / 共4页
2023年c语言中什么是静态变量(完整)_第2页
第2页 / 共4页
2023年c语言中什么是静态变量(完整)_第3页
第3页 / 共4页
2023年c语言中什么是静态变量(完整)_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《2023年c语言中什么是静态变量(完整)》由会员分享,可在线阅读,更多相关《2023年c语言中什么是静态变量(完整)(4页珍藏版)》请在金锄头文库上搜索。

1、2023年c语言中什么是静态变量(完整)静态变量是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量,下面是免费学习我为大家整理的关于c语言中静态变量的介绍,希望可以帮到大家哦。c语言静态变量的概念定义“静态变量”下面是我为大家整理的c语言中什么是静态变量(完整),供大家参考。静态变量是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量,下面是免费学习我为大家整理的关于c语言中静态变量的介绍,希望可以帮到大家哦。c语言静态变量的概念定义“静态变量”这一术语有两个容易混淆的定义:语言无关的通用定义:与程序有着相同生命周期英语:Objectlifetime的变量;C族语言特有的

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

3、静态变量全局变量及汇编语言里定义的符号亦同可用const,constant或final根据语言决定等关键字标识,这时其值就会在编译时英语:Compiletime设定,并且无法在运行时改变。编译器通常将静态常量与文本一起置于目标文件的文本区域,而非常量初始化数据则置于数据区;而如若有需要,有些编译器还可选择为其开辟专用区;为防止常数变量被错误的指针写入覆盖,亦可在这块区域启用内存保护机制。c语言静态变量的变量特点静态局部变量静态局部变量属于静态存储方式,它具有以下特点:1静态局部变量在函数内定义,但不像自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整

4、个源程序。2静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后,尽管该变量还继续存在,但不能使用它。3允许对构造类静态局部量赋初值。若未赋以初值,则由系统自动赋值。数值型变量自动赋初值0,字符型变量赋空字符。4对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。根据静态局部变量的特点,可以看出它是一种生存期为整个源文件的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值。因此,当多次调用一个函数且要求在调用之间保留某

5、些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。给读者一个简单直白的例子区别静态局部变量和动态局部变量:这里的运行结果是:说明f在加了static的类型限制之后,就相当于全局变量,函数调用完了之后,修改过的f的值仍然是有效的即这个程序相当于求i的阶乘了。而如果不加static的类型限制,那么,会是什么结果呢,我们看下面的代码:程序的运行结果是:也就是说,这时函数fun中的变量f的生命周期就仅限于fun函数的范围内了,在main中每次传入新的参数i,f就会计算1*i的值并返回,而不会像之前那样不断的累乘了。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号