存储类说明符?
就是将以前学习的变量和即将要学习的几种变量进行了一个分类。 这四个不同的变量又有 各自的特点,这个特点和它们各自存储的区域有关联的。
之前讲的内存分区,大概分5种,栈区,堆区,全局静态区, 字符常量区, 代码区
自动变量存在一个区域,静态变量存在一个区域,不同的内存区域是有不同特点的,比如说栈区,栈区的特点是这段空间由系统申请,由系统释放。完全不用程序员去管,栈区有这样的特点,栈区的变量就有这样的特点。所以之前学的定义一个普通变量 int a,a的这个四字节的空间就是存在于栈区,由系统管理。
这个a叫栈区变量,也叫自动变量。
堆区的空间特点:由程序员申请,由程序员释放。当然堆区是不能直接申请成变量的,是需要malloc出一段空间,然后定义一个指针去纪录这个地址。不能直接定义一个堆区的变量!!只能拿到堆区空间的首地址。
静态变量是放在全局静态区。
寄存器变量放在寄存器,跟内存没什么关系。
大致上三类,实际上两类。
自动变量也叫局部变量也叫栈区变量
因为a 在{}结束后就立马释放掉了。
这就是a的生命周期,这就是a的作用域。