我想知道为什么这个节目的结果是5621?
#include <stdio.h>
main()
{
int i=56;
printf("%d\n",printf("%d",printf("%d",i)));
getch();
}
Run Code Online (Sandbox Code Playgroud)
orl*_*rlp 22
printf 返回已打印的字符数.
所以首先,最内层的printf是56,打印56.然后它将打印的字符数(2)返回到中间printf,打印2.然后最后打印的字符数量(1)被传递到外部printf,然后打印到procude 5621.
printf() 返回打印的字符数:
printf("%d",i)输出值56.
printf("%d",printf("%d",i))输出56,然后2,中的字符数56.
printf("%d\n",printf("%d",printf("%d",i)))输出56,然后2,然后是字符数2,即1.
它相当于
#include <stdio.h>
main()
{
int n, i = 56;
n = printf("%d",i);
n = printf("%d", n);
n = printf("%d\n", n);
}
Run Code Online (Sandbox Code Playgroud)
printf返回写入的字符数.