#include <stdio.h>
int main ()
{
int a=10;
printf("%d %d %d",a,a++,a);
return 0;
}
我得到的输出是“11 10 11”。 我认为输出将是“10 10 11”。
为什么 a 会这样递增?
最佳答案
因为无法保证 C 编译器计算参数的顺序。 (标准)唯一保证的是它们在调用之前都会被评估。因此,您永远不应该依赖参数的求值顺序。只需将其视为随机即可。
因此,一般来说,如果同一变量在参数列表中多次存在,请避免使用自动增量。
关于c - 这个职位增量是如何运作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33106682/