<span style="font-size:18px;"> int main()
{
int arr[] = {6,7,8,9,10};
int *ptr = arr;
*(ptr++) += 123;
printf("%d ,%d/n",*ptr,*(++ptr));
return 0;
}
//结果为 8 8 </span>
解释如下:
1.
int arr[]={6,7,8,9,10};
int *ptr=arr;//现在ptr指向6
*(ptr++)+=123;//现在ptr指向7,第一个元素变为129
printf("%d,%d",*ptr,*(++ptr)); //考虑从右往左计算,先是*(++ptr),现在ptr指向8,然后*ptr也是8,输出8,8
2.
printf的参数,函数printf从左往右读取,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始的,所有从右边开始处理的。