指针引用数组,也就是定义一个指针变量指向一个数组元素。同时它也会指向数组的首地址。
而在c语言中指向数组的首地址有两种方式
指向数组首个元素的地址
int *p;
int arr[3] = {1,2,3};
p = &arr[0];
2. 数组名也叫元素的首地址
int *p;
int arr[3] = {1,2,3};
p = arr;
在c语言中,数组名(不包括形参数组名,形参数组并不占据实际的内存单元)代表数组中首元素(即序列号为0的元素)的地址。因此,下面两个语句是等价的
p = &arr[0];
p = arr;
也就是说现在有两种方式访问数组元素
下标法
指针法
这两种方法的效率如何呢?
对于使用指针和数组下标的选择:
系统在使用数组下标对数组成员变量进行访问时,开销比较大,指针的访问效率是远远大于数组名访问效率的。
但是只有在指针正确访问时,才会比下标法更有效率。
下标法更容易理解,在可读性方面,也更加具有优势,具体怎么选择,也没有一定的说法。