【发布时间】:2013-10-31 10:26:57
【问题描述】:
运行时我发现输出是:4 4. 无法理解原因。
int i = 2;
printf("%d %d", ++i, ++i);
【问题讨论】:
-
在计算参数之前不能调用函数,可以吗?
-
@R.MartinhoFernandes: 不,但它的参数值可以在应用其参数表达式的副作用之前一成不变,因为唯一可见的序列点是 after 评估,但 在 函数调用之前。因此,
3 3、3 4、4 3和4 4都是这段代码的模糊合理的输出,尽管 ofc 它具有未定义的行为,所以任何事情都是允许的。