先看面试题:
#include <stdio.h>
main()
{
int arr[]={6,7,8,9,10};
int *ptr = arr;
*(ptr++)+=123;
printf("*(ptr-1) = %d\n", *(ptr-1));
printf("*ptr = %d\n", *ptr);
printf("*ptr = %d, *(++ptr) = %d\n", *ptr,*(++ptr));
}
执行结果;
*(ptr-1) = 129
*ptr = 7
*ptr = 8, *(++ptr) = 8
分析:
可将*(ptr++)+=123分解为 *ptr = *ptr + 123; ptr++;两句,此时ptr应该只想第二个元素7