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

时间:2013-07-16 18:26:50

标签: c arrays pointers

程序员的输出:

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

是:3216303812 3216303812 1

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

2 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:0)

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