#include <stdio.h>
int main()
{
int i=43;
printf("%d",printf("%d",printf("%d",printf("%d",i))));
return 0;
}
嵌套printf()
的用途是什么?我使用了值43,但其他值如何
在输出中显示?
输出:
43211
答案 0 :(得分:3)
将此视为代码的简单版本:
43
很明显为什么要打印printf
。至于其他数字,它们是43211
的返回值:
成功时,将返回写入的字符总数。
所以,你应该得到的(考虑到这是你的确切代码)是:'4'
'3'
+ '2'
)'1'
)答案 1 :(得分:3)
printf的返回值是打印字符数。
让我们分析一下发生了什么。
printf("%d",printf("%d",printf("%d",printf("%d",i))));
最里面printf("%d",i)
打印明显43
,i
为43。
下一个外printf("%d",printf("%d",i))
打印2
,因为前一个printf的输出长度为2
(长度为&#34; 43&#34;)。
到目前为止,输出是:
432
下一个外部printf将打印1
,因为前一个printf的输出长度是"1"
的长度,即1。
到目前为止,输出是:
4321
外部printf将再次打印1
,因为前一个printf的输出长度为"1"
的长度为1。
所以最终输出是:
43211
答案 2 :(得分:0)
您正在打印printf()的返回值,因为第一次正确打印43
。
printf()
不会返回&#34;项目的数量&#34;类似于scanf()
函数族的输出用于输入。它返回实际的字符数。
答案 3 :(得分:0)
printf
返回一个int值,所以如果你连接printf命令,第一个值是你要打印的数字,其他是printf指令的结果,如果成功则返回打印字符的数量(即使它们是回车或新线也不可见)。