数组地址与其各元素地址关系

在C 语言中,指针是用来存放内存地址的, 举个例子: int a = 10; int* pi = &a;
这里的指针变量pi可以称为变量a的指针,存储的值就是变量a的地址。
假定这里有一个数组 int arr[5]={1,2,3,4,5}; int* pi = &aar 的意思可以认定为存储的是整个数组的地址,请问 这里的整个数组地址可以理解成是该数组所有元素地址集中存储在一个内存单元块中吗?

int arr[5]={1,2,3,4,5};
int* pi = aar;//等价于int *pi=&arr[0];

pi只存储数组起始元素的地址, 它只是一个int长度不可能存的下所有元素的地址,也没必要

int* pi = &aar 的意思可以认定为存储的是整个数组的地址

这里的地址,是指数组的起始地址。因为数组是连续的,只需要记住起始地址就可以了

建议你看下这篇博客数组首元素地址、数组首地址、整个数组地址的分析