【发布时间】:2012-07-25 19:26:12
【问题描述】:
以下是未定义的还是实现定义的:
int x = 0;
printf("%d%d", ++x, x);
未指定评估参数的顺序,因此:
- 如果首先评估
++x,则输出11。 - 如果首先评估
x,它会打印10。
【问题讨论】:
-
你不是自己回答的吗?未指定。
-
@ninjalj:出于同样的原因,我可以争辩说,由于标准中没有定义地址零处的值,
*0会产生实现定义的行为。 -
@ninjalj:他没有问是否未指定。他询问它是未定义的,还是已定义的实现。所以不,他自己没有回答。