C 我不熟悉这种printf()语句。为什么我的输出看起来像这样?谢谢
嵌套printf的用途是什么?我使用了43号值,但其他值如何 在输出中显示 输出: 43211C 我不熟悉这种printf()语句。为什么我的输出看起来像这样?谢谢,c,C,嵌套printf的用途是什么?我使用了43号值,但其他值如何 在输出中显示 输出: 43211 您正在打印的返回值,因为第一次打印正确 printf不像scanf系列函数那样返回输入的项数。它返回实际的字符数。printf返回一个int值,因此,如果串联printf命令,第一个值是要打印的数字,其他值是printf指令的结果,如果成功,则返回打印字符数,即使它们是回车符或新行,因此不可见 就你而言: 43第一个数字 3 printf int结果 等等 将此视为代码的更简单版本: #include
您正在打印的返回值,因为第一次打印正确 printf不像scanf系列函数那样返回输入的项数。它返回实际的字符数。printf返回一个int值,因此,如果串联printf命令,第一个值是要打印的数字,其他值是printf指令的结果,如果成功,则返回打印字符数,即使它们是回车符或新行,因此不可见 就你而言: 43第一个数字 3 printf int结果 等等
将此视为代码的更简单版本:
#include <stdio.h>
int main()
{
int i=43;
printf("%d",printf("%d",printf("%d",printf("%d",i))));
return 0;
}
很清楚为什么43是印刷品。对于其他数字,它们是printf的返回值:
成功时,返回写入的字符总数
所以,考虑到这是你的确切代码,你应该得到的是:43211
43是第一个印刷品
2是在“4”+“3”之前打印的位数
1是在“2”之前打印的位数
1是在“1”之前打印的位数
printf的返回值是打印字符数 让我们分析一下发生了什么
int main(){
int i = 43;
int a = printf("%d", i);
int b = printf("%d", a);
int c = printf("%d", b);
printf("%d", c);
return 0;
}
最里面的printf%d,i明显地打印43,因为我是43
下一个外部printf%d,printf%d,i打印2,因为上一个printf的输出长度是2长度43
因此,到目前为止,输出为:
432
下一个外部printf将打印1,因为上一个printf的输出长度是1的长度,即1
因此,到目前为止,输出为:
4321
外部printf将再次打印1,因为上一个printf的输出长度是1的长度,即1
因此,最终输出为:
43211
printf的返回值是打印字符数。这种printf嵌套调用的使用只是为了演示或娱乐。这样做没有真正的好处。
printf("%d",printf("%d",printf("%d",printf("%d",i))));