每天学一点(10.07.19.am@0)


内存的5个区域

  1、全局名字空间

  2、自由存储区

  3、寄存器

  4、代码空间

  5、栈

  局部变量和函数形参位于栈中,代码位于代码区,全局变量位于全局变量区。寄存器则用于内部管理,例如保存栈顶指针和指令指针等。所有剩余的内存空间都被作为自由存储区,有时也被称为堆。

  局部变量的问题在于他们的寿命是有限的,当函数返回时,局部变量就被丢弃了。全局变量解决了这个问题,代价是在整个程序过程中对他们的访问不受任何限制,这导致了代码的编制难以理解并且难以维护。把数据保存在自由存储区则可以一举解决这2个问题。

  采取这种内存访问方式,而不是采用全局变量,有点在于只有使用特定指针的函数才能访问特定的数据。这样就提供了一个严格控制的数据访问接口,避免了一个函数以外地改变它不应改变的数据。

  在c++使用new关键字 来实现这一点。

转载于:https://www.cnblogs.com/lucky_linen/archive/2010/07/19/1780469.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值