一个小面试题
int arr[] = {6,7,8,9,10};
int *ptr = arr;
*(ptr++) += 123;
printf( "%d,%d ", *ptr, *(++ptr));
奇怪,结果怎么是8,8
*ptr++后ptr应该是知到7上面,那么*ptr应该是7;它又加上123,应该=130了.
*(++ptr)应该是一样的吧
[解决办法]
int arr[] = {6,7,8,9,10};
int *ptr = arr;
*(ptr++) += 123; // ptr = arr+1;
printf( "%d,%d ", *ptr, *(++ptr)); // first ptr = arr+2, then printf( "%d,%d ",*ptr,*ptr)