c语言的变量具有区间性的作用域。在开发一些小程序的时候,也行我们并不在意作用域的必要性。可是,当我们书写上万行代码的时候,没有作用域肯定是不行的。
所以呢,我在这里把C的作用域相关东西总结一些。
一、C的作用域
1.全局变量:在函数之外什么的变量,默认地会成为全局变量。全局变量在任何地方都是可见的。当程序被分割为多个源代码文件进行编译时,声明为全局变量的变
量也是可以从其他源代码文件中引用的。
2.文件内部的静态变量:就算对于像全局变量那样被定义在函数外面的变量,一旦添加了static,作用域就只限定在当前所在的源代码文件中。
3.局部变量:局部变量是指在函数中声明的变量。局部变量只能在包含它的声明的语句快中被引用。局部变量通常在函数的开头部分进行声明,但也可以在函数内部某语句
块的开头进行声明。例如,在“交换两个变量的内容时,需要使用一下临时变量”的情况下,将局部变量声明放在当前语句块开头还是比较方便的。
二、存储期
1、静态存储期:全局变量、文件内部的staitic变量、指定static的局部变量都持有静态存储期,这些变量都统称为静态变量。持有静态存储期的变量的寿命从程序运行时开始
到程序关闭时结束。换句话说,静态变量一直存在于内存的同一地址上。
2、自动存储期:没有指定static的局部变量,持有自动存储期。这样的变量被称为自动变量。持有自动存储期的变量,在程序运行进入它所在的语句块时被分配内存区域,
该语句块自动执行结束后这片内存区域被释放。