0

可能重复:
数组名称是 C 中的指针吗?

pC 中的和有什么区别a

float a[10],*p; p=a;
4

2 回答 2

2

如果我们将“差异”定义为减法的结果,则答案为零

assert((p-a) == 0);

...直到您分配一些其他指针值p(您不能这样做a,因为它没有命名指针变量:它命名了一个数组,该数组在适当的上下文中衰减为指针;还有其他上下文,例如sizeof(p)!=sizeof(a))。

于 2013-02-03T22:56:20.947 回答
2
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
于 2013-02-03T23:00:25.290 回答