printf没有说明符

Cha*_*eep 0 c printf

可能重复:
为什么将printf的结果传递给另一个printf工作?

我有一个代码片段..

printf("%d", printf("tim"));
Run Code Online (Sandbox Code Playgroud)

函数printf打印值tim3 ..第二个printf语句没有说明符,为什么字符数和字符串"tim"一起打印?

当我只运行此代码.. printf("tim");我得到输出,tim Exited: ExitFailure 3为什么会发生这种情况?

当第一个printf语句printf("tim")期望一个整数时,它如何作为参数?

Joe*_*Joe 5

printf返回打印的字符数,因此printf("tim")返回3,因为字符串中有3个字符.

第二个printf需要在其值可以在格式字符串中使用之前进行评估,因此首先打印它.

至于你的输出tim Exited: ExitFailure 3,看起来更像你有另一个问题,它在打印的同时导致问题.注释掉这些行,你可能会在其他地方发现问题.