首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-04-12 
一个小面试题intarr[]{6,7,8,9,10}int*ptrarr*(ptr++)+123printf( %d,%d ,*ptr,*(++ptr))奇怪,结

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

热点排行