几种写法:
int a[10];
int *p = a;
int a[10];
int *p;
p = a;
你这里犯的错误因为是新手容易犯的一种错误,
int *p;定义的变量是p,这个p是int *类型的,
不是定义的*p, int *是整形指针类型,跟int是不一样的,
新手总是容易把这种写法理解成 *只是一个标示符,这个p仍然是int类型的,
其实这个p根本就不是int类型的,而是(int *)类型的。
第一个p1=a没错。
第二问:对数组名求值就是数组首元素的地址。
第三问:编译通不过纯属编译器问题,*p=a才是错的。
第四问:对的,a==&a[0]。