这篇文章如何增加工作?

问题描述:

#include <stdio.h> 

int main() 
{ 

    int a=10; 

    printf("%d %d %d",a,a++,a); 

    return 0; 
} 

我得到的输出是“11 10 11”。 我认为输出将是“10 10 11”。这篇文章如何增加工作?

为什么一个像这样递增?

+1

垃圾代码。立即向下和cose投票。 –

因为不能保证C编译器评估参数的顺序。唯一保证(按标准)的是他们在进行呼叫之前都被评估过。因此,你永远不应该依赖评价参数的顺序。只要认为它是随机的。

因此,一般情况下,如果同一变量在参数列表中存在多次,则应避免使用自动递增。