调用 printf 嵌套函数?

问题描述 投票:0回答:1

输出是什么? 请给出答案并提供有效的解释。

#include<stdio.h>
int main()
{
printf("%d  %d", printf("Hello      
World"), printf("New World"));
return 0;
}

请解释输出。

c function output printf
1个回答
0
投票

您首先应该记住,C 语言几乎没有什么魔力:它最初被设计为盲目服从程序员,但现在仍然主要按照要求执行。

发生了什么:您使用 3 个参数调用

printf
函数:一个字符串 (
"%d %d"
) 和 2 个恰好是函数调用的表达式。

因此编译器首先评估函数参数(以未指定的顺序)。每个

printf
函数调用都会执行自己的输出并返回(与任何
printf
调用一样)字符数。您首先看到
Hello world
New world
的原因是按照您的特定 C 实现指定的顺序。

然后使用参数

"%d %d"
9
11
调用外部 printf(内部 printf 调用的返回值...)并正常显示
9 11

没有魔法...

© www.soinside.com 2019 - 2024. All rights reserved.