printf相关查询

Leo*_*ssi 5 c printf

这是一个简单的单行程序,使用printf:

void main()

{
printf("%d%d",printf("Cis"),printf("good"));
}
Run Code Online (Sandbox Code Playgroud)

输出:

goodCis34
Run Code Online (Sandbox Code Playgroud)

如何解释这个输出?

Mys*_*ial 6

首先打印goodCis打印的原因是因为需要printf()在调用顶级之前评估参数.

然后打印出返回值.

请注意,C未指定参数的评估顺序.声明中没有序列点.因此订单未定义.结果可以按任何顺序出现.(因此,为什么他们似乎在这种情况下无序评估)