参数的入栈顺序和编译器的具体实现有关, 我在 G++ 下测试, 入栈是从右向左
int f(int &a, int &b) {
return a +b;
}
int main() {
int b = 3;
int arr[] = {6, 7, 8, 9, 10};
int *ptr = arr;
*(ptr++) += 123;
printf("%d, %d\n", *ptr, *(++ptr));
int a = 10;
cout << f(a, ++a) << endl;
return 0;
}
返回 8, 8; 22