指针的用途

一、用途
    1. 处理堆中存放的大量数据

    2. 快速访问类的成员数据和函数

    3. 以别名的方式向函数传递参数


二、数据在内存中的存放共分为以下几个形式(这里请重点看栈区、堆区和全局区)

   1、栈区(stack) -------由编译器自动分配并且释放,该区域一般存放函数的参数值、局部变量的值等。

   2、堆区(heap) --------一般由程序员分配释放,若程序员不释放,程序结束时可能由操作系统回收。

   3、寄存器区 -----------用来保存栈顶指针和指令指针。

   4、全局区(静态区 static) --------- 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻                                                                      的另一块区域。程序结束后由系统释放。

   5、文字常量区-------------常量字符串就是放在这里的,程序结束后由系统释放。

   6、程序代码区-------------存放函数体的二进制代码。

    解释如下:

    (1)函数参数和局部变量存放在栈中,当函数运行结束并且返回时,所有的局部变量和参数被系统自动清除掉,释放了它们占用的内存空间。

    (2)全局变量永远不会被释放,除非整个程序都停止掉,但全局变量被所有的类成员和函数共享,所以它的值很容易被修改。

     堆可以解决上诉(1)和(2)两种问题,堆是采用匿名的方式来保存数据,因为只能通过指针才能访问到这些匿名的数据,安全性最好,同时由于堆中的内存由程序员分配                                                                                 和释放,自由度最高



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值