printf的返回值

碰到一段有意思的代码:

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

这段代码用了几个printf函数,但是输出的值很有意思
在这里插入图片描述
为什么会是4321呢?

首先调用第一个printf输出43,然后第二个printf输出2,第三个printf输出1并且换行。

查阅资料发现printf是有返回值的,返回值是输出的长度。

首先第一个printf输出43,返回输出的长度‘2’。

第二个printf输出2,返回输出的长度‘1’。

最后输出1.

猜你喜欢

转载自blog.csdn.net/Magge_Lin/article/details/82867138