printf的返回值

【printf的返回值】碰到一段有意思的代码:

#include int main() { int i=43; printf("%d\n",printf("%d",printf("%d",i))); return 0; }

这段代码用了几个printf函数,但是输出的值很有意思
printf的返回值
文章图片

为什么会是4321呢?
首先调用第一个printf输出43,然后第二个printf输出2,第三个printf输出1并且换行。
查阅资料发现printf是有返回值的,返回值是输出的长度。
首先第一个printf输出43,返回输出的长度‘2’。
第二个printf输出2,返回输出的长度‘1’。
最后输出1.

    推荐阅读