为什么printf()打印这样的东西?

Saj*_*med -6 c

我在互联网上发现了一个问题,就是有一个C程序,它喜欢 -

int main(){
   int a = 123;
   printf("%d", printf("%d",a));
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在Codeblocks运行此程序并找到结果1233.
我的问题是为什么printf()就是这样的?

Emb*_*d C 5

see printf是一个返回的函数int.哪些intcharacters印刷的.

这是一个printf原型

int printf(const char *restrict format, ...)
Run Code Online (Sandbox Code Playgroud)

按照你的计划:

printf("%d", printf("%d",a));
Run Code Online (Sandbox Code Playgroud)

printf("%d",a)这里a123,所以它打印123并返回3
printf("%d", printf("%d",a));变得printf("%d",3);所以,冲印3独自

所以你的输出:
1233