p和a有什么区别?

时间:2013-02-03 22:53:21

标签: c pointers

  

可能重复:
  Is array name a pointer in C?

C中的pa有什么区别?

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

2 个答案:

答案 0 :(得分:2)

如果我们将“差异”定义为减法的结果,那么答案是

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

...直到你将一些其他指针值分配给p(你不能用a,因为它没有命名一个指针变量:它命名一个衰变的数组指向适当的上下文; 其他上下文,例如sizeof(p)!=sizeof(a))。

答案 1 :(得分:2)

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

afloat的数组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