下面用一个例子来看:
int arr[] = {6,7,8,9,10};
int *ptr = arr;
*(ptr++)+=123;
printf(“ %d %d ”, *ptr, *(++ptr));
分析:
int *ptr = arr;
此时指针指向第一个元素,即6
*(ptr++)+=123;
此时指针ptr自加表示地址加一,指向第二个元素
printf(“ %d %d ”, *ptr, *(++ptr));
Printf中是向右的结合方向,所以先执行的是*(++ptr),所以此时指针又向后移了一位,*(++ptr)的值为8,再执行*ptr,值也为8