加载中…
个人资料
jh_saya
jh_saya
  • 博客等级:
  • 博客积分:0
  • 博客访问:29,060
  • 关注人气:7
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

内存分配区域

(2012-03-12 18:18:47)
标签:

静态区

局部函数

局部变量

静态成员

源文件

分类: VC++笔记

堆区(heap)             :由malloc,new等分配的空间的地址,地址由低向高增长.

栈区(stack)(动态区)    :是自动分配变量,以及函数调用所使用的一些空间(局部变量),地址由高向低减少.

全局区(static)(静态区) :存放全局或静态变量.

程序代码区             :存放所有代码.

文字常量区             :存放字符串常量,程序结束后由系统释放.

(寄存器                :register变量.)

(频繁使用堆区会产生内存碎片,而按照堆栈的先入后出原则,即先申请的后释放原则可以有效地避免在堆中产生碎片)


关于函数:

    全局函数     :在外部定义的函数为全局函数.

    静态全局函数 :全局函数前加关键字static(静态)为静态全局函数,静态全局函数不能声明为const(常量)或者volatile(虚函数).不能在其他源文件声明此函数(但可以在其他源文件定义一个同名函数).

    局部函数     :在类内部定义的函数为局部函数(成员函数)(C++规定不能在函数里定义函数).

    静态局部函数 :没有this指针,调用该函数时不会将对象的引用传递给它,所以不可访问非静态成员变量.

(可以通过对象引用或类名访问静态成员,例如C类里的add静态局部函数"C::add()")

 

关于变量:

    全局变量     :存放在全局区(静态区).

    静态全局变量 :加关键字static,不能在其他源文件声明此变量(但可以在其他源文件定义一个同名变量).

    局部变量     :存放在栈区(动态区).

    静态局部变量 :加关键字static,存放在全局区.函数退栈时会失去效果(因为作用域就是函数体内),但其值一直保存,下次调用同一函数时不会再进行初始化,直到程序运行结束才收回.

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有