答案 0 :(得分:2)
如果我们将“差异”定义为减法的结果,那么答案是零:
assert((p-a) == 0);
...直到你将一些其他指针值分配给p
(你不能用a
,因为它没有命名一个指针变量:它命名一个衰变的数组指向适当的上下文; 是其他上下文,例如sizeof(p)!=sizeof(a)
)。
答案 1 :(得分:2)
float a[10],*p; p=a;
a
是float
的数组10。
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