指针遍历数组通过指针算术高效访问元素,数组名即首元素地址,定义指针指向首地址后递增并解引用输出值,可用结束指针避免计数器,结合const确保只读安全,需防止越界。

在C++中,使用指针遍历数组是一种高效且常见的操作方式。指针本质上存储的是内存地址,而数组名本身可以看作指向第一个元素的指针,因此可以通过指针的算术运算来访问每个数组元素。
使用指针遍历数组的基本方法
定义一个指向数组元素类型的指针,将其初始化为数组的首地址,然后通过递增指针依次访问每个元素。
- 数组名代表首元素的地址,即
arr
等价于&arr[0]
- 使用
++
操作符移动指针到下一个元素 - 通过解引用操作符
*
获取当前指针指向的值
示例代码:
#includeusing namespace std; int main() { int arr[] = {10, 20, 30, 40, 50}; int* ptr = arr; // 指针指向数组首元素 int size = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i zuojiankuohaophpcn size; ++i) { cout zuojiankuohaophpcnzuojiankuohaophpcn *ptr zuojiankuohaophpcnzuojiankuohaophpcn " "; // 输出当前元素 ++ptr; // 指针移向下一个元素 } return 0;}
立即学习“C++免费学习笔记(深入)”;
利用指针范围进行遍历
可以定义一个指向数组末尾后一个位置的指针作为结束标志,避免使用额外的计数器。
ptr < arr + size
是常见的循环条件- 指针加法
arr + size
指向数组末尾之后的位置
示例代码:
int arr[] = {10, 20, 30, 40, 50};
int* ptr = arr;
int* end = arr + 5; // 指向末尾后一个位置
while (ptr < end) {
cout << *ptr << " ";
++ptr;
}
使用const指针或指向const的指针
如果只是读取数组内容,建议使用
const来防止意外修改数据。
const int* ptr = arr;
:不能通过ptr修改元素值- 适用于只读遍历场景,提高代码安全性
示例:
const int* ptr = arr;
while (ptr < arr + 5) {
cout << *ptr << " ";
++ptr;
}
基本上就这些。掌握指针与数组的关系,理解指针算术,就能灵活高效地遍历数组。注意不要越界访问,确保指针始终在有效范围内移动。










