#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会像这样递增?
答案 0 :(得分:0)
因为无法保证C编译器评估参数的顺序。唯一保证(按标准)是在进行呼叫之前对它们进行全面评估。因此,您永远不应该依赖于参数的评估顺序。只需将其视为随机。
因此,一般情况下,如果同一个变量在参数列表中存在多次,请避免使用自动增量。