以下代码的输出是什么?
#include<stdio.h>
main()
{
int b=3;
int array[]={6,7,8,9,10};
int *ptr=arr;
*(ptr++)+=123;
printf("%d,%d\n",*ptr,*(++ptr));
}
几个输出结果分别如下:
printf("%d\n",*ptr);此时ptr应指向第一个元素6。
*(ptr++)+=123应为*ptr=*ptr+123;ptr++,此时ptr应该 指向第二元素7。
printf("%d\n",*(ptr-1));此时输出第一个元素129,注意此时是经过计算的。
printf("%d\n",*ptr);此时输出第二个元素7,此时ptr指向第二个元素7。
printf("%d,%d\n",*ptr,*(++ptr));从右到左运算,第一个是*(++ptr)=8,*ptr=8,此时ptr指向第三个