我正在学习C中的数组中的指针。我真的很困惑,指针的数组究竟是什么。看看此例 -为什么p不显示与a相同的地址?
#include<stdio.h>
int main()
{
static int a[] = { 0, 1, 2, 3, 4 };
int *p[] = { a, a+1, a+2, a+3, a+4 };
printf("%p %p %p %d ", p, *p, a, *(*p));
return 0;
}
当我运行这个程序,我得到不同的地址a
和p
。为什么?据我所知,a
是指向数组的第零个元素的指针,而p
是指向指针的指针。 a
指向第零个元素的地址,但p
呢?有没有地址的地址?
a不是指针,a是数组。 p也不是一个指针,它也是一个数组。 – 2014-11-04 17:36:09
@MooingDuck尽管 – 2014-11-04 20:19:50