通过数组引用指针,是C语言编程里使用非常多的方法,但是有几个问题是需要注意的。
首先,使用数组元素的指针赋值时别乱了。
int a[10]={1,2,3,4,5,6,7,8,9,10};
int *p;
p=&a;
上面的写法是没有问题的p=&a,是将p指向数组a的首地址,由于C语言中数组名代表数组的首元素,因此下面两个语句等价的:
p=&a[0];
p=a;
其中容易引起错觉的是p=a,容易认为这是将数组a整体赋值给指针变量p,其实只是让p指向a 的首地址而已。当然获得首地址后,p可以对数组进行遍历。
如果写成这个样子:int *p=a;作用是将a数组首元素的地址赋给指针变量p。
第二个问题:什么情况下可以对指针进行加减操作,
答案是当指针指向数组首元素的时候。