这个问题是在看一个面试问题的时候发现的,记载下来,以后不要再忘记拉!
先看下面这段代码:
#include<iostream>
using namespace std;
void main()
{
int arr[]={1,2,3,4,5};
int *ptr=arr;
*(ptr++)+=123;
printf("%d%d\n",*ptr,*(++ptr));
return 0;
}
这段代码输出的结果是3 3;
首先 *(ptr++)+=123这句执行之后,ptr指向的元素是2了,当代码执行到printf这句话的时候,
从右到左计算,第一个是(++ptr),此时ptr指向了3,所以输出两个3。
这种小细节还是要注意一下的!