数组指针和c语言指针数组有什么区别?

时间:2017-12-14 17:59:00

标签: c programming-languages

请告诉我指针数组和数组指针有什么区别,特别是用c语言

1 个答案:

答案 0 :(得分:0)

设T为随机类型(int,long int,double,enum ecc ..)然后:

int n=3;
T arr[n];
T*p=arr;

p是指向T数组arr的第一个元素的指针,因此您可以像这样访问数组的第一个元素:

arr[0]="whatever you want but a r-value"

p=...

这是一种在没有索引的情况下移动数组的简单方法,也是一种通过值传递变量的绝佳解决方案。请记住,指针具有指向对象的l值作为r值,当指针被解除引用时,我们获得指向的对象。所以写p + 1意味着将指针移动到数组的第二个元素。 指针数组实际上是此对象的集合(指向变量或另一个数据结构的指针)。例如,您可以拥有一个int指针数组来跟踪有线列表的所有元素。由于您没有定义每个指针,因此它们是未推荐的,因此它可能是一种危险的编码方式。