#include <iostream>
using namespace std;
int main()
{
int* p;
int arr[10];
p = arr;
for( int i = 0; i <10; i++)
{
//arr[i] = i; //这句可以得到预计的结果
//*(p + i) = i //这句也可以
*(p++) = i; //这句为什么不行
}
for(int i = 0; i < 10; i++)
{
cout << *(p++) <<endl; //这句可以`请输入代码`
}
}
你的第一个for循环结束时,p已经指向数组最后一个元素。这样cout的时候全越界了。