这是非常简单的c程序:
int main()
{
int i = 22;
printf("%d %d %d",i,i++,i);
return 0;
}
结果是:
23 22 23
这里的帖子增量究竟是如何工作的?
答案 0 :(得分:2)
在此上下文中无法正确测试。
函数参数的参数评估顺序未定义,因此您将获得与平台相关的结果。
i ++的实际工作方式是首先返回旧值并稍后递增,但这是一个糟糕的测试。
答案 1 :(得分:1)
根据你得到的结果判断,i ++被评估并返回预先增加的值。然后,将i的值,i ++的返回值和i的值传递给print函数。
这不是您应该依赖的东西,因为您可能会在不同的编译器上获得不同的答案,甚至可能使用不同的优化设置。与另一个答案一样,参数评估的顺序是未定义的行为。