考虑以下程序。
#include <stdio.h>
int main()
{
int a[10]={0};
printf("%p %p\n", a, &a);
printf("%d %d\n", *a, *(&a));
return 0;
}
a 和 &a 是一样的。但是 *a 和 *(&a) 不是。我没有答案。请帮忙。
最佳答案
a[i]
与 *(a + i)
相同。所以第一个元素与数组本身位于相同的地址。
您将在 SO 的另一个问题中找到更详细的解释:How come an array's address is equal to its value in C?
关于c++ - 数组基址指针及其地址相同。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10515382/