下列程序,输出结果?
#include <stdio.h>
int main() {
int i = 43;
printf("%d\n",printf("%d",printf("%d",i)));
return 0;
}
原系列出处:Linux下C语言的几道经典面试题
下列程序,输出结果?
#include <stdio.h>
int main() {
int i = 43;
printf("%d\n",printf("%d",printf("%d",i)));
return 0;
}
原系列出处:Linux下C语言的几道经典面试题
答案是4321
是一种printf
函数的递归调用,我们首先应该明白 printf
函数的返回值是打印的字符数
从最后一个printf
开始输出,输出43
,并且返回字符数2
于是倒数第二个printf
输出2
,并且返回字符数1
第一个printf
输出1
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答800 阅读✓ 已解决
1 回答3.3k 阅读
答案是 43 2 1
解释:printf("%d", i)有返回值,返回输出的个数
上面代码可以转换为: