黑马程序员技术交流社区
标题:
栈和堆
[打印本页]
作者:
evenzhu1989
时间:
2015-6-2 20:14
标题:
栈和堆
1、栈区:由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。
2、堆区:一般由程序员分配释放, 若程序员不释放,程序结束时可能由系统回收;
3代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int b; //栈区
char s[] = "aaa"; //栈区
char *p2; //栈区
char *p3 = "123456"; // 123456/0 在常量区,p3在栈上。
char *p1 = (char *)malloc(10);//10个字节的区域,在堆区
p1="aaaa";//堆区
free(p1);//释放p1
}
复制代码
4、网上有一个很好的比喻
使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就
走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自
由度小。
使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由
度大。
作者:
Dzlbp
时间:
2015-6-2 20:53
最后那个比喻挺好的
作者:
碧空海
时间:
2015-6-2 20:55
学习了,,,,,,,,,,
作者:
李闯
时间:
2015-6-2 21:25
很不错的 分享 谢了
作者:
doushu
时间:
2015-6-2 21:49
点点滴滴的,,,,,,,
作者:
洋柿子
时间:
2015-6-2 21:56
不错的见解。
作者:
这是829
时间:
2015-6-4 00:14
我又来围观学习啦
作者:
jx836202365
时间:
2015-6-4 08:00
还没有学到这个知识点
作者:
Dariel
时间:
2015-6-4 08:27
写的不错
作者:
wangguanyang
时间:
2015-6-4 08:32
描述的很形象
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2