变量存储类型

程序员成长之旅 · 程序员成长之旅/C语言/笔记 · 665 字

通常我们使用的默认变量是aoto类型(动态),内存随着使用的过程自动释放例如:

int x=100; //默认是动态的类型

经过所学 得知还有很多其他类型的

C语言中存储类别又分为四类:自动(auto)、静态(static)、寄存器的(register)和外部的(extern)。

自动(auto):

刚刚说过  就是动态变量  若声明变量时没有说明变量类型默认就是auto

笔记:

动态存储方式:是指在程序运行期间根据需要进行动态的分配存储空间的方式。动态存储区中存放的变量是根据程序运行的需要而建立和释放的,通常包括:函数形式参数;自动变量;函数调用时的现场保护和返回地址等。

静态(static):

如果定义在函数内部的,称之为静态局部变量;如果定义在函数外部,称之为静态外部变量。

静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个运行期间都不释放;静态局部变量在编译时赋初值,即只赋初值一次;如果在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)

简单来说就是动态变量会随着使用而自动释放, 而手动定义的静态变量不会随着程序的运行而自动释放  并且只能赋初始值一次

寄存器变量(register):

只有局部自动变量和形式参数可以作为寄存器变量;一个计算机系统中的寄存器数目有限,不能定义任意多个寄存器变量;局部静态变量不能定义为寄存器变量。

简单来说就是为了加快速度而存在的变量 直接放在CPU寄存器里面 当然比内存要快!

外部变量(extern):

简单来说就是调用当前函数外面的变量 可以被外部调用的函数

演示:

比较式演示

直接演示