参数的入栈顺序和编译器的具体实现有关, 我在 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