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

拜请各路高手解答解决方法

2012-02-24 
拜请各路高手解答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     不懂   ,求解?


[解决办法]
int *ptr=arr;这句有问题
改成 int *ptr=arr[0];
[解决办法]
int arr[]={6,7,8,9,10};

int *ptr=arr;

*(ptr++)+=123;

printf("%d,%d",*ptr,*(++ptr));
------------------------------------------------
*(ptr++)+=123;执行后ptr指向a[1]
printf("%d,%d",*ptr,*(++ptr));的求值顺序为从右向左,即先计算*(++ptr),这样ptr就指向了a[2],那么*ptr自然也就是指向a[2]了

热点排行