指向自身的整数数组的起始地址?

程序员的输出:

#include int main (){ int A[3] = {1,2,3}; printf("%u %u %u ",&A,A,*A); return 0; } 

是:3216303812 3216303812 1

这里&A和A是相同的,这意味着a的地址与a的值相同,即A指向自身。 和* A表示存储在3216303812的值,我们知道A本身就是A = A ..那么1来自哪里? 怎么来* A = 1? 请帮忙

A是指向数组第一个元素的指针,即它等同于&A[0]

&A是指向整个数组的指针。

当然,这些地址具有相同的 ,因为数组的第一个元素的地址与数组的地址相同。 但是它们有不同的类型A产生指向int的指针,而&A是指向int数组的指针。

A表示&A[0] ,所以*A等于数组中第一个元素的值,因此输出为1