用指针访问数组元素[1]
数组是一组连续存储的同类型数据,可以通过指针的算术运算,使指针依次指向数组的各个元素,进而可以遍历数组。
定义指向数组元素的指针
- 定义与赋值
例:
int a[10], *pa;
pa=&a[0]; 或 pa=a;
- 等效的形式
- 经过上述定义及赋值后
*pa就是a[0],*(pa+1)就是a[1],... ,*(pa+i)就是a[i].
a[i], *(pa+i), *(a+i), pa[i]都是等效的。
- 注意
- 不能写 a++,因为a是数组首地址、是常量。
例6-7
设有一个int型数组a,有10个元素。用三种方法输出各元素:
- 使用数组名和下标
- 使用数组名和指针运算
- 使用指针变量
例6-7 (1) 使用数组名和下标访问数组元素
#include <iostream>
using namespace std;
int main() {int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };for (int i = 0; i < 10; i++)cout << a[i] << " ";cout << endl;return 0;
}
例6-7 (2) 使用数组名和指针运算访问数组元素
#include <iostream>
using namespace std;
int main() {int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };for (int i = 0; i < 10; i++)cout << *(a + i) << " ";cout << endl;return 0;
}
例6-7 (3) 使用指针变量访问数组元素
#include <iostream>
using namespace std;
int main() {int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };for (int *p = a; p < (a + 10); p++)cout << *p << " ";cout << endl;return 0;
}
参考
- ^http://www.xuetangx.com/courses/course-v1:TsinghuaX+00740043X_2015_T2+sp/courseware/d4eb7d174ba04a4da6282bcae197892c/a58465c9cbbb4e15a08588cc114b5796/