复习了一下指向一维数组的指针,发现指向数组的指针与自增运算符的运算容易搞错,做示例标记如下:
#include <iostream>
using namespace std;
int main()
{
//测试*p++
int a[10] = {1,2,3,4,8};
int *p = a; //p指向a[0]
cout<<*p++<<endl; //1 //输出p[0],p再指向a[2]
cout<<*++p<<endl; //3 //p指向a[3],再输出p[3]
cout<<*p++<<endl; //3 //输出*p,p再指向下一个元素, 此时p指向a[4]
cout<<*p<<endl; //4 输出p[4]
int k = (*p)++; //P指向的数组元素加1,此时P还是指向a[4]
cout<<(*p)<<endl;//5 p此时指向a[4],a[4]的值在上一步加1变成5,所以此步骤输出5
cout<<*p++<<endl;//5 先输出*p(a[4]),p再加1,此时p指向a[5]
cout<<*p<<endl;//输出8
system("pause");
return 0;
}