使用指针访问数组元素
1. 指针的算术操作
使用指针的算术操作在指向数组某个元素的指针上加上(或减去)一个整型数值,就可以计算出指向数组另一个元素的指针值:
ip = ia;
int *ip2 = ip + 4;
在指针ip上加4得到一个新的指针,指向数组中ip当前指向元素后的第4个元素。
通常,在指针上加上(减去)一个整型数值n等效于获得一个新指针,该新指针指向指针原来指向的元素之后(之前)的第n个元素。
2. 解引用和指针算术操作之间的相互作用
在指针上加一个整型数值,其结果仍然是指针。允许在这个结果上直接进行解引用操作,而不必先把它赋给一个新指针:
int last = *(last + 4);
3. 下标和指针
在表达式中使用数组名时,实际上使用的是指向数组第一个元素的指针。使用下标访问数组时,实际上是使用下标访问指针:
int ia[] = {0, 2, 4, 6, 8};
int i = ia[0];
4. 计算数组的超出末端指针
计算数组的超出末端指针的值:
const size_t arr_size = 5;
int arr[arr_size] = {1, 2, 3, 4, 5};
int *p = arr;
int *p2 = p + arr_size;
p指向数组arr的第一个元素,在指针p上加数组长度即可计算出数组arr的超出末端指针。p加5即得p所指向的元素后面的第五个int元素的地址,p+5指向数组的超出末端的位置。
______________________________________
BY:HW-RJ






































苏公安网备 32011402010933号