-2

程序员的输出:

#include<stdio.h>
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 怎么来的?请帮忙

4

2 回答 2

5

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

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

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

于 2013-07-16T18:30:16.820 回答
0

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

于 2013-07-16T18:31:37.733 回答