[Nome da matriz de linguagem C] A diferença entre o nome da matriz e o nome da matriz &

Coisas a serem observadas ao usar nomes de array:

1. arr é equivalente a  &arr[0] , indicando o endereço do primeiro elemento do array

2. &arr   representa o primeiro endereço de todo o array

Conforme mostrado nas três primeiras linhas da figura, os resultados dos dois são iguais e ambos representam endereços, ou seja, ponteiros, mas a extensão dos ponteiros é diferente.

Explicação específica:

Código anexado:

#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;
}

 

 

Acho que você gosta

Origin blog.csdn.net/ggbb_4/article/details/129185642
Recomendado
Clasificación