读书人

一个小面试题,该怎么解决

发布时间: 2012-04-12 15:46:35 作者: rapoo

一个小面试题
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)

读书人网 >C++

热点推荐