预减运算符
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++ 没有说明参数求值的顺序。
我的问题与调用函数以及递减运算符有关。 以下代码的答案是 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++ 没有说明参数求值的顺序。