标签:定义 作用域 C语言 源文件 静态 类别 全局变量 变量
1.局部变量(在函数内部(1.函数体开头定义的变量2.复合语句内定义的变量3.函数的形参)定义的变量,只能在函数内部使用。如果和全局变量同名则优先引用)
2.全局变量(不在任何函数内部定义的变量都是全局变量,作用于定义它的地方开始到源文件的结束)
全局变量的拓展:
1.extern c:可以把全局变量的作用域改为从extern开始到源文件结束
2.如果其他源文件也对c进行了声明,那么也可以在其他的源文件中使用c变量
3.如果只想让c在源文件内部使用,则在定义该变量的时候加上static,比如整型变量时候定义为:static int c,那么该变量只能在本源文件中使用访问了
注意:变量的作用域越小,作用优先级别就越高
3.内存的储存区域
1.代码区(储存代码)
2.静态区(储存静态变量)
1.零区
2.非零区
3.动态区(储存动态变量)
1.堆区(动态内存分配)
2.栈区(动态变量储存)
4.动态变量
1.动态变量的类别
1.自动变量(局部,用auto声明或省略auto)
2.寄存器变量(局部,用register声明)
2.动态变量的特点
1.每次执行到局部变量作用域就分配一次空间,离开作用域释放空间,如果执行两次就分配两次空间,释放两次空间
2.如果定义变量的时候对他赋初值了,那么每次分配空间的时候都会对变量初始化,分配几次空间,就进行几次初始化
3.如果没有赋初值,那么变量的值不确定
5.静态变量
1,静态变量的种类
1.静态全局变量(用static和extern声明定义)
2.静态局部变量(static声明的局部变量)
2.局部变量的特点
1.在程序运行开始之前分配空间,程序结束时释放空间,运行一次只分配或者释放一次空间(意思就是不会擦除数据,数据会一直保存,可以用来计算阶乘)
2.如果定义变量的时候赋初值,那么对其分配空间的时候就进行了初始化,而且只初始化一次,如果没有赋初值,初值为0
标签:定义,
作用域,
C语言,
源文件,
静态,
类别,
全局变量,
变量
From: https://blog.csdn.net/m0_69142917/article/details/137378064