变量——auto static extern

本文深入解析C语言中的各种变量类型,包括auto、register、static、extern及全局变量的特点与应用场景,帮助读者理解变量的内存分配、作用域及生命周期。

前言

由于变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字,因此它们十分有用。

auto变量

默认:自动分配空间,自动回收空间

int i;
char g;

这些都属于自动分配到空间,他们的值在不被赋值的情况下都是随机值

register变量

寄存器类型(建议型):只能定义32位大小的数据类型,只能定义局部变量,不能定义全局变量,没有地址,所以一个寄存器类型不能打印出地址或使用

static变量

静态型:自动初始化为零,并使其值据有继承性

int mian ()
{
	func ():
	func ();
	func ();
}
void func (void)
{
	static int i=0;
	i++;
	printf ("i=%d\n",i);
}

得出来的值是1,2,3,这就是static的好处,他一但申请到空间,重复申请就不会出错,他只会继承下一个值,但是他的作用域和自动变量相同,但是函数结束后,尽管他还存在,但是不能再调用

extern变量

为一个外部声明的变量

全局变量

全局变量,定义在所有的全局,可以被所有的函数所引用,但是他在局部的函数中,以局部变量为准

int a=0;
int main ()
{
	int a=1;
	printf ("a=%d\n",a);
}

这样的出来的数值为1,但是全局变量的使用要谨慎,他有时候会出现很多意想不到的错误

静态全局变量

全局变量的定义就是在静态区域,但是再加上static变量的修饰,他就只能在当前 的区域内,限制了他的使用

静态函数

他在函数中定义以后,就只能被当前文件所调用,不能被其他所使用,在平常中为隐藏接口所使用,同时可以为他写专门的访问接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值