指针数组和数组指针在存储位置和占用内存大小方面也有显著的区别,尤其是它们的结构不同导致内存分布上的差异。接下来详细说明它们在这两个方面的区别:
1. 指针数组 (Array of Pointers)
定义回顾:
int *array[5];
这里 array
是一个指针数组,存储 5 个 int*
类型的指针。
内存分布与存储位置:
- 指针数组本身:
array
是一个存储指针的数组,这个数组的每个元素都是指针,它们分别指向不同的内存地址。这些指针的存储位置在内存的栈或全局数据段(取决于它的声明位置)。
- 每个指针指向的地址<