int arr[] = {6,7,8,9,10};
int *ptr = arr;
*(ptr++) += 123;
printf("%d,%d\n",*ptr.*(++ptr));
后置++为先进行运算,再对所指位置进行++,故此处6将变为129,而又因为所用编译器(vs2019)为从右向左入栈,且printf语句为前置++,所以将指向8所在位置,输出结果为8,8。
int arr[] = {6,7,8,9,10};
int *ptr = arr;
*(ptr++) += 123;
printf("%d,%d\n",*ptr.*(++ptr));
后置++为先进行运算,再对所指位置进行++,故此处6将变为129,而又因为所用编译器(vs2019)为从右向左入栈,且printf语句为前置++,所以将指向8所在位置,输出结果为8,8。