在C中返回printf()函数的值

Ang*_*gus 29 c

printf()函数将返回打印的字符数.但是在下面的代码中为什么要打印5.

int a=1000;
printf("%d",printf("\n%d",a));
Run Code Online (Sandbox Code Playgroud)

它打印"1000"一次和一个空格,所以总共我们有2个字符.

它应该输出"1000 2".但它的输出"1000 5".

Mat*_*Mat 52

输出的字符数为5. 1000是四个字符.\n是一个角色.

printf不会返回"项目"输出的数量,就像scanf输入的函数族一样.它返回实际的字符数.


Ric*_*dle 9

内呼叫首先发生,印刷品5个字符(\n,1,0,0,0),并返回5.

然后发生外部调用,并打印5内部调用返回的内部调用.


小智 5

假设表达式:

int a=10;
printf("a=%d",printf("b=%d",a));
Run Code Online (Sandbox Code Playgroud)

输出

b=10 a=4;
Run Code Online (Sandbox Code Playgroud)

b因为赋值给 b ie

b=10;
Run Code Online (Sandbox Code Playgroud)

b,=,1,0   
Run Code Online (Sandbox Code Playgroud)

算作四并分配给 a 即:

a=4;
Run Code Online (Sandbox Code Playgroud)