这是一个简单的单行程序,使用printf
:
void main()
{
printf("%d%d",printf("Cis"),printf("good"));
}
Run Code Online (Sandbox Code Playgroud)
输出:
goodCis34
Run Code Online (Sandbox Code Playgroud)
如何解释这个输出?
首先打印good
和Cis
打印的原因是因为需要printf()
在调用顶级之前评估参数.
然后打印出返回值.
请注意,C未指定参数的评估顺序.声明中没有序列点.因此订单未定义.结果可以按任何顺序出现.(因此,为什么他们似乎在这种情况下无序评估)