首页 > 解决方案 > printf 如何返回成功打印的字符数?

问题描述

对于以下代码片段:

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

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

请简要说明这一点。

标签: c

解决方案


代码首先执行printf("Lucknow"),在屏幕上打印“Lucknow”并将值 7 返回给第二次printf()调用。第二个printf()打印“made,7,easy”并返回 11,这是它打印的字符数。它不知道也不关心其他函数做了什么。


推荐阅读