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

use*_*495 -2 c arrays pointers

程序员的输出:

#include<stdio.h>
int main (){
 int A[3] = {1,2,3};
printf("%u %u %u ",&A,A,*A); 
return 0;
}
Run Code Online (Sandbox Code Playgroud)

是:3216303812 3216303812 1

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

Pau*_*l R 5

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

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

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