#include "stdio.h"
main()
{
int b=3;
int arr[={6,7,8,9,10};
int *ptr = arr;
*(ptr++)+=123;
printf("%d,%d/n",*ptr,*(++ptr));
}
解析:c中printf计算参数是从右至左压栈。
*ptr = arr ====》 ptr 指向6;
*(ptr++)+=123;======》*ptr=*ptr+123; ptr++; 这时 ptr 指向7; arr[]={129,7,8,9,10};
printf("%d,%d/n",*ptr,*(++ptr)); 由于是从右至左压栈操作。所以(++ptr),这是ptr指向8;
*ptr=8;
解析完毕。