重学c语言系列二---(变量)

本文介绍了C语言中的四种变量类型:自动(auto)、寄存器(register)、外部(extern)和静态(static)变量,包括它们的作用域、生存期和使用场景。寄存器变量用于提高效率,但实际效果依赖于编译器。外部变量即全局变量,其作用域为整个源程序,静态全局变量限制了其作用域,仅在定义文件内有效。静态局部变量则在函数调用间保持其值。
摘要由CSDN通过智能技术生成
在C语言中,对变量的存储类型说明有以下四种:
auto     自动变量
register    寄存器变量
extern    外部变量
static    静态变量

 自动变量和寄存器变量属于动态存储方式,外部变量和静态变量属于静态存储方式。

按作用域又可分为全局变量和局部变量

自动(auto)变量

C语言规定, 函数内凡未加存储类型说明的变量均视为自动变量, 也就是说自动变量可省去说明符auto

作用域和生存期都局限于定义它的个体内( 函数或复合语句内),我当初理解就是最内层包含它的花括号内。

需要注意的是,变量从声明开始就是可见的了。

举例:

#include<stdio.h>
int i=1;
int main(){
  int i=i;
 printf("%d",i);
}
这段程序的输出其实并不是1,而是不确定的,i从声明开始就可见了,在作用域了,它遮盖了全局变量。

寄存器(register)变量

上述各类变量都存放在存储器内, 因此当对一个变量频繁读写时,必须要反复访问内存储器,从而花费大量的存取时间。 为此,C语言提供了另一种变量,即寄存器变量。
这种变量存放在CPU的寄存器中,使用时,不需要访问内存,而直接从寄存器中读写, 这样可提高效率。寄存器变量的说明符是register。
对于循环次数较多的循环控制变量及循环体内反复使用的变量均可定义为寄存器变量。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值