printf如何返回成功打印的字符数?

时间:2018-06-01 15:13:29

标签: c

对于以下代码段:

int a=printf("made,%d,easy",printf("Lucknow"));
printf("%d",a);

我使用GCC编译器得到a的值为11,我没有得到这背后的逻辑,printf返回屏幕上打印的字符数,因此它打印lucknowmade,7,easy。因此,我们在屏幕上打印了18个字符,因此a的值应为18,为什么OP为11?

请简要解释一下。

2 个答案:

答案 0 :(得分:4)

代码首先执行printf("Lucknow")打印"勒克瑙"在屏幕上,将值7返回到第二个printf()调用。第二个printf()打印"制作,7,简单"并返回11,即它打印的字符数。它不知道或关心其他功能的作用。

答案 1 :(得分:1)

如您所述,printf会返回打印的字符数。

printf("made,%d,easy",printf("Lucknow"))

返回11因为printf("Lucknow")打印"勒克瑙"然后返回7,所以你最终会打印出#7; made,7,easy"这是11个字符。