【发布时间】:2012-10-19 13:58:17
【问题描述】:
程序的输出
#include<stdio.h>
main()
{
int i = 10;
printf("%d %d %d\n", ++i, i++, ++i);
}
是 13 11 13。有人可以解释一下吗?
【问题讨论】:
-
无法解释未定义的行为。
程序的输出
#include<stdio.h>
main()
{
int i = 10;
printf("%d %d %d\n", ++i, i++, ++i);
}
是 13 11 13。有人可以解释一下吗?
【问题讨论】:
这是有史以来最古老的问题。为什么人们会觉得这如此迷人?
这是未定义的行为;您在修改之间依赖于没有sequence point 的副作用。
【讨论】: