C语言中变量类型的分析总结

变量按作用范围来分可以分为局部变量全局变量

变量 Discription
局部变量 在函数内部定义的变量,函数内部的形参。作用范围在函数内部。
全局变量 在所有函数的外部的申明,称为全局变量

注意,全局变量不属于某个函数,而是整个源文件。如果外部文件要进行调用(比如两个不同的源文件),需要使用extern进行修饰。

变量按存储类别分为静态存储、动态存储

存储方式 Discrioption
静态存储方式 在程序运行时分配(存储全局变量)
动态存储方式 在程序运行期间根据需要分配(存储局部变量,函数形参,自动变量,函数调用时现场保护)

auto变量  未加存储类型说明的变量称为自动变量,省略了auto.

static变量 1、局部变量的值在函数调用后不消失,但是作用域还是在局部

                 2、某些变量只限于本文引用,而不能被其他文件引用

变量的赋初值问题:1、静态变量不赋初值,系统自动赋予0值。

                                2、自动变量赋初值,其值是不确定的。

静态存储  
静态全局变量 可以理解为限制了全局变量的作用范围,当源程序由多个源文件组成时,静态全局变量只在定义的源文件中有效。
非静态全局变量 在各个源文件中都有效

register变量

Discription:当反复读写时,需要读写内存,速度,比较慢,为了提高效率而引入了寄存器变量。

 注意:如果需要有效的利用寄存器变量,则需要像汇编语言那样,了解处理器的内部结构。

extern变量

如果源文件函数想要引用其他源文件中的变量,可以用extern来声明外部变量,extern可以扩展变量的作用域。

猜你喜欢

转载自blog.csdn.net/flying_man_/article/details/84402670