局部变量的认识

存储类说明符?

 就是将以前学习的变量和即将要学习的几种变量进行了一个分类。 这四个不同的变量又有 各自的特点,这个特点和它们各自存储的区域有关联的。

之前讲的内存分区,大概分5种,栈区,堆区,全局静态区, 字符常量区, 代码区

自动变量存在一个区域,静态变量存在一个区域,不同的内存区域是有不同特点的,比如说栈区,栈区的特点是这段空间由系统申请,由系统释放。完全不用程序员去管,栈区有这样的特点,栈区的变量就有这样的特点。所以之前学的定义一个普通变量 int a,a的这个四字节的空间就是存在于栈区,由系统管理。

这个a叫栈区变量,也叫自动变量。

堆区的空间特点:由程序员申请,由程序员释放。当然堆区是不能直接申请成变量的,是需要malloc出一段空间,然后定义一个指针去纪录这个地址。不能直接定义一个堆区的变量!!只能拿到堆区空间的首地址。

静态变量是放在全局静态区。

寄存器变量放在寄存器,跟内存没什么关系。

大致上三类,实际上两类。

自动变量也叫局部变量也叫栈区变量

因为a 在{}结束后就立马释放掉了。

 

 这就是a的生命周期,这就是a的作用域。

原文地址:https://www.cnblogs.com/dabing0983/p/10559938.html