第三节 变量存储类型和作用域
-
存储类型
-
作用域
7.3.1存储类型
1.说明:在数据定义类型中,存储类型用于定义变量在内存中存储区域,从而决定其生存期。
2.生存期:一个"{}"内就是一个生存期,即函数外、函数内、函数中复合语句内等均可以是一个生存期。
3.内容:
①auto:自动类型,该类型是默认类型,会根据定义的位置决定生存期,在生存期结束后将消失。
注意:函数的形参也属于自动类型,该类型变量在获得内存区域后,初始值为随机数。
②static:静态类型,该类型是生存期最长的,只要程序还在执行,该类型的值就可能再用到,所以要一直保留着。
注意:该类型在定义时,如果没有初始化将会被赋予0。在多文件编写或访问时,该类型值将不能被改写。
③register:寄存器类型,该类型是最珍贵的,它将存储在寄存器中。
④extern:外部类型,该类型表示将定义范围扩展到其他位置。
注意:在多文件编写或访问时,该类型也表示其值可以被外部操作。
7.3.2作用域
1.内存四区:全局区、代码区、堆区、栈区。
2.内容:
①全局区:用于存放全局变量和静态变量,即生存其最长的一些变量。
②代码区:用于存放程序代码和常量。
③栈区:用于存放自动类型变量和程序中断地址等,它将根据程序执行情况自由分配空间。
④堆区:用于程序员利用内存分配函数进行操作的区域。