int main() {
printf("%d", printf("%d", printf("%d", 43)));
return 0;
}
输出结果为:
4321
原因:
外面的printf函数执行时总是会先执行括号里面的代码,故而相当于最里边的代码最先执行,即printf("%d", 43)最先执行输出43;然后执行printf("%d", printf("%d", 43))输出printf的返回值2;最后执行 printf("%d", printf("%d", printf("%d", 43))),输出返回值1.
例题
KiKi写了一个输出“Hello world!”的程序,BoBo老师告诉他printf函数有返回值,你能帮他写个程序输出printf(“Hello world!”)的返回值吗?
输入描述:
无
输出描述:
包括两行:
第一行为“Hello world!”
第二行为printf(“Hello world!”)调用后的返回值。
代码示例
int main() {
printf("\n%d\n", printf("Hello world!"));
return 0;
}
备注 :因为要实现换行,所以先\n再%d再换行就再\n。