这边先简单介绍一下内存分区。
内存按照用途划分为五个区:
1.栈区:由系统控制分配和回收。
例如定义变量 int x = 0; int *p = NULL; 变量所占的内存都是分配在栈区的。
2.堆区:由程序员管理。
在C语言中由 malloc 申请的内存,或者在C++中,用 new 申请的内存,是在堆区中申请的。用完之后需要程序员自己回收,否则会造成内存泄漏。
3.全局区:存储全局变量及静态变量
4.常量区:存储常量。
5.代码区:存储编译之后的二进制代码。
数组和指针具有很大的相似性,实际上,数组也是一种指针,一种有点特别的指针。
例如,可以这样申请包含10个 int 型数据的数组