这篇文章如何增加工作?

时间:2015-10-13 15:27:53

标签: c

#include <stdio.h>

int main ()
{

  int a=10;

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

  return 0;
}

我得到的输出是&#34; 11 10 11&#34;。 我认为输出将是&#34; 10 10 11&#34;。

为什么a会像这样递增?

1 个答案:

答案 0 :(得分:0)

因为无法保证C编译器评估参数的顺序。唯一保证(按标准)是在进行呼叫之前对它们进行全面评估。因此,您永远不应该依赖于参数的评估顺序。只需将其视为随机。

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