拜请各路高手解答
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]了