用指针变量来访问数组中任一元素,通常将数组的首地址称为数组的指针,而将指向数组元素的指针变量称为指向数组的指针变量。使用指向数组的指针变量来处理数组中的元素,不仅可使程序紧凑,而且还可提高程序的运算速率。
访问数组元素值有三种方法:
(1)通过移动指针变量,依次访问数组元素。
(2)指针变量不变,用p+i或 a+i 访问数组第i个元素。
(3)以指针变量名作为数组名访问数组元素。
数组元素的引用
综上所述,对一维数组a[ ]而言,当p=a后,有如下等同关系成立:
① p+i=a+i=&a[i],即p+i、a+i 均表示第i个元素的地址&a[i]。
② *(p+i) =*(a+i)=p[i]= a[i]。即*(p+i), *(a+i), p[i]均表示第i个元素值a[i]。
其中p[i] 的运行效率最高。
由上所述可知:一维数组的第i个元素可用四种方式引用,即: a[i]、*(p+i) 、*(a+i)、p[i]。
当使用const关键字下的变量要注意以下几种方式:
int *const q; //q不能改,q++错误,(*q)++可以使用
int const *p; // z++可以使用,(*z)++错误
const int *a; // 等价于int const *a;
const int *const b; // b++ 和 (*b)++ 都错误