Cosas a tener en cuenta al utilizar nombres de matrices:
1. arr es equivalente a &arr[0] , indica la dirección del primer elemento de la matriz
2. &arr representa la primera dirección de toda la matriz
Como se muestra en las primeras tres líneas de la figura, los resultados de los dos son los mismos y ambos representan direcciones, es decir, punteros, pero el alcance de los punteros es diferente.
Explicación específica:
Código adjunto:
#include <stdio.h>
int main()
{
int arr[3] = {1,2,3};
//数组名是数组首元素的地址==&数组名[0]
printf("%p\n", arr); //0053F7FC
printf("%p\n", &arr[0]); //0053F7FC
//&数组名:整个数组的首地址
printf("%p\n", &arr); //0053F7FC
//数组名和&数组名的区别
printf("%p\n", arr+1); //0053F800
printf("%p\n", &arr+1); //0053F808
return 0;
}