邮政增量如何在c中起作用?

时间:2017-07-15 02:25:39

标签: c printf post-increment

这是非常简单的c程序:

int main()
{
    int i = 22;
    printf("%d %d %d",i,i++,i); 
    return 0;
}

结果是:

23 22 23

这里的帖子增量究竟是如何工作的?

2 个答案:

答案 0 :(得分:2)

在此上下文中无法正确测试。

函数参数的参数评估顺序未定义,因此您将获得与平台相关的结果。

i ++的实际工作方式是首先返回旧值并稍后递增,但这是一个糟糕的测试。

答案 1 :(得分:1)

根据你得到的结果判断,i ++被评估并返回预先增加的值。然后,将i的值,i ++的返回值和i的值传递给print函数。

这不是您应该依赖的东西,因为您可能会在不同的编译器上获得不同的答案,甚至可能使用不同的优化设置。与另一个答案一样,参数评估的顺序是未定义的行为。