预减运算符

Pre-Decrement Operator

我的问题与调用函数以及递减运算符有关。 以下代码的答案是 20 1 19 10 我的问题是在“--m”之后 m 应该是 19 所以它应该发送 19 最后 19 应该是 print 给出输出 19 1 19 10 但为什么即使有“--m”,m 也没有改变?

void f(int a, double b){cout<< a--<< '\t'<< b<< endl;}

int g(double x, int y){ return (x / ++y);}

int main()
{

int m = 20, n = 10;

f(m, g(--m, n));

cout<< m<< '\t'<< n << endl;

return 0;

}

这是未指定的行为。 C++ 没有说明参数求值的顺序。