1.概念解析
我们每次写的代码申请的数据都会储存到几个区域(如下图),但计算机不只有这些储存区域,这些只是我们学习c/c++必须要了解的
1. 栈又叫堆栈 - 非静态局部变量/函数参数/返回值等等,栈是向下增长的。
2. 堆用于程序运行时动态内存分配(如:malloc...),堆是可以上增长的。
3. 数据段--存储全局数据和静态数据。
4. 代码段(图中的常量区)--可执行的代码/只读常量。
2.题目讲解
接下来用一个题目来讲解这些抽象的知识
1~5:C,C,C,A,A
5:num1是整个数组所以在栈上
6~11:A,A,A,D,A,B
6:char2是数组名,所以储存在栈空间
7:*char2是数组的第一个元素(根据上图可得)
8:pChar3是指针储存在栈空间
9:指针解引用后就是指向常量区(根据上图可得)
10:ptr1是指针储存在栈空间
11:解引用后指向堆空间(根据上图可得)