在C++中,当对一个指针使用++操作符时,指针的值会增加它所指向类型的 size。这是因为指针的增量操作是基于指针指向的类型的大小来进行的,以确保指针正确地移动到下一个元素的内存位置。
执行int* p = arr;时,指针p被赋予了数组第一个元素的地址。因此,*p就是数组第一个元素的值,即arr[0]。
当使用p++时,指针p的值增加了sizeof(int),即指针向前移动了一个整数的大小。由于数组arr有7个整数元素,从arr[0]到arr[6],所以通过7次循环,每次循环后指针p移动到下一个元素的地址,并解引用*p来访问该元素的值,就能访问到数组中的所有元素。
#include <iostream>
using namespace std;
int main()
{
int arr[] = { 1,2,3,4,5,6,7 }; // 定义并初始化一个有7个元素的数组
int* p = arr; // 将指针p指向数组的第一个元素
cout << "第一个元素:" << arr[0] << endl;
cout << "指针访问第一个元素:" << *p << endl; // 通过指针访问数组的第一个元素
for (int i = 0; i < 7; i++)
{
// 利用指针遍历数组
cout << *p << endl;// 输出指针p当前指向的元素的值
p++;// 将指针p向前移动到下一个元素的地址
}
system("pause");
return 0;
}