📦 归档笔记 — 原创建于 WizNote,仅作归档展示;观点以当年为准,非最新。

变量存储类型

创建时间2018-06-17最后修改2018-06-17原位置/程序员成长之旅/C语言/笔记/字数665图片/附件8
目录:程序员成长之旅/C语言/笔记

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

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

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

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

自动(auto):

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

笔记:

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

静态(static):

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

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

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

寄存器变量(register):

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

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

外部变量(extern):

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

演示:

比较式演示

🖼 图片占位(归档模式)图片见原始导出:%E5%8F%98%E9%87%8F%E5%AD%98%E5%82%A8%E7%B1%BB%E5%9E%8B.assets/12861009-ef84-472d-a6db-ceb45f02c09a.png
🖼 图片占位(归档模式)图片见原始导出:%E5%8F%98%E9%87%8F%E5%AD%98%E5%82%A8%E7%B1%BB%E5%9E%8B.assets/8fecc60f-d0b6-49be-9290-ae84afa7da47.png

直接演示

🖼 图片占位(归档模式)图片见原始导出:%E5%8F%98%E9%87%8F%E5%AD%98%E5%82%A8%E7%B1%BB%E5%9E%8B.assets/0.08856301717079873.png
🖼 图片占位(归档模式)图片见原始导出:%E5%8F%98%E9%87%8F%E5%AD%98%E5%82%A8%E7%B1%BB%E5%9E%8B.assets/0f2b6cc2-e314-42a5-ad03-d9bc3f2d2ac9.png