前言
由于变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字,因此它们十分有用。
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变量的修饰,他就只能在当前 的区域内,限制了他的使用
静态函数
他在函数中定义以后,就只能被当前文件所调用,不能被其他所使用,在平常中为隐藏接口所使用,同时可以为他写专门的访问接口
本文深入解析C语言中的各种变量类型,包括auto、register、static、extern及全局变量的特点与应用场景,帮助读者理解变量的内存分配、作用域及生命周期。
7624

被折叠的 条评论
为什么被折叠?



