静态变量、动态变量、寄存器变量、…

本文详细介绍了C语言中的四种变量类型:静态变量(包括静态局部和全局变量)、动态变量(自动变量)、寄存器变量以及易失变量。静态变量在整个程序运行期间持续存在,而动态变量在函数内部定义,随函数退出而释放。寄存器变量用于提高程序性能,易失变量用于标记易变数据,防止编译器优化。此外,还探讨了全局变量与局部变量的初始化和存储位置差异。
摘要由CSDN通过智能技术生成

1、静态变量分静态局部变量和静态全局变量。静态变量存储在程序的全局区(静态区)。静态变量定义时若未初始化,则编译器自动为其初始化为0.其他类型的变量若未初始化,则其值就是内存中原始的二进制码代表的值。若一个函数递归,在函数体内定义静态变量并赋初值,则只有函数第一次被调用时,静态变量的定义并赋初值成立,之后的每次递归调用函数时,静态变量的定义并赋初值语句将不被执行。

静态变量指在变量定义时就分配好内存,在整个程序运行时期内持续存在的变量。静态局部变量是在函数内部定义的,并且用关键字static加以限制,静态局部变量的生存周期是整个程序周期(即程序执行运行期间都会存在),静态局部变量的作用域是函数内部,定义静态局部变量的函数之外不能使用该静态局部变量。静态局部变量的作用是在同一个程序执行过程中对同一个函数的不同调用之间共享该静态局部变量。

全局静态局部变量是在声明全局变量的时候加上关键字static。全局变量(无论是否为静态的)是静态存储方式(定义时就分配好内存,并且整个程序周期内持续存在),在全局变量定义后面定义的函数都可以使用全局变量(同一个文件中,全局变量定义之前的函数要想使用全局变量,必须在函数之前加上extern全局变量声明)。其他文件B中若想使用本文件A中的全局变量,必须在文件B的开头加上extern变量声明。静态全局变量与非静态全局变量的区别是:非静态全局变量在其他文件中可以通过加入extern变量声明来使用本文件中的非静态全局变量,而静态全局变量只能在本文件中使用,在其他文件中不能使用。注意:如果你在函数外这样声明一个变量,const int a ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值