我们在写代码的时候,会将数组作为参数传给函数。
数组名是首元素地址,例外:
(1)sizeof(数组名)-数组名表示整个数组-计算的是整个数组的大小单位是字节。
(2)&数组名-数组名表示整个数组-取出的是整个数组的地址。
#include <stdio.h>
int main() {
//数组名是什么?
int arr[5] = { 0 };
//数组名是首元素地址,
//例外1.sizeof(数组名)-数组名表示整个数组-计算的是整个数组的大小单位是字节
//2.&数组名-数组名表示整个数组-取出的是整个数组的地址
printf("(数组名)首元素地址=%p\n", arr);//数组名是数组首元素地址
printf("(数组名)首元素地址+1=%p\n", arr+1);//数组首元素+1地址
printf("数组地址=%p\n", &arr);//取出数组地址
printf("数组地址+1=%p\n", &arr+1);//取出数组+1地址
printf("数组首元素地址=%p\n", &arr[0]);//数组首元素地址
return 0;
}

结论:1. arr(数组名)=&arr[0](数组首元素),数组名就是数组首元素地址。
2. &arr(取数组地址)和arr(数组首元素)的值虽然相同但是意义不一样,数组地址+1是加了整个数组大小,而数组首元素+1是加了一个数组元素的大小。