首页 > 代码库 > 1.15 第十五天

1.15 第十五天

栈:局部变量  向下增长

堆:程序员申请内存空间  向上增长  如:p1 = (char *)malloc(10);  堆 
p2 = (char *)malloc(20);  堆 

 

堆和栈的区别:栈(英文名称是stack)是系统自动分配空间的,例如我们定义一个 char a;系统会自动在栈上为其开辟空间。而堆(英文名称是heap)则是程序员根据需要自己申请的空间,例如malloc(10);开辟十个字节的空间。由于栈上的空间是自动分配自动回收的,所以栈上的数据的生存周期只是在函数的运行过程中,运行后就释放掉,不可以再访问。而堆上的数据只要程序员不释放空间,就一直可以访问到

 

静态区:静态变量  

只读区:常量,代码  a++是错误的。因为a是数组名,它是数组的首地址,是常量。

栈中分配局部变量空间,堆区是向上增长的用于分配程序员申请的内存空间。另外还有静态区是分配静态变量,全局变量空间的;只读区是分配常量和程序代码空间的;以及其他一些分区。

1.15 第十五天