可能重复:
数组名称是 C 中的指针吗?
pC 中的和有什么区别a?
float a[10],*p; p=a;
如果我们将“差异”定义为减法的结果,则答案为零:
assert((p-a) == 0);
...直到您分配一些其他指针值p(您不能这样做a,因为它没有命名指针变量:它命名了一个数组,该数组在适当的上下文中衰减为指针;还有其他上下文,例如sizeof(p)!=sizeof(a))。
float a[10],*p; p=a;
a是 10 的数组float。
p是指向 的指针float。它指向 的第一个元素a。
在 C 中,数组不是指针。数组和指针是两种不同的类型。例如:
sizeof a; // compute the size of an array
sizeof p; // compute the size of a pointer
p = &a[1]; // this is valid, p points to the second element of a
a = &p[1]; // this is not valid, you cannot assign to an array