4

以下代码如何工作?

void main()
{
    printf("%d", printf("earth"));
}

这给出了输出:earth5.

4

3 回答 3

6

的返回值printf是打印的字符数。printf首先调用内部。相当于:

int rc = printf("earth");
printf("%d", rc);
于 2012-09-27T16:29:22.093 回答
4

这绝对没问题:-)

print("earth") 输出 earth 并返回 5(打印的字符数)。

另一个 printf 获取 5 作为参数并将其输出为整数(因为 %d)

于 2012-09-27T16:32:32.657 回答
2

%d期望一个整数来打印它。printf返回打印的字符数,并且您正在打印一个 5 字符的字符串。

它首先评估内部打印以找出打印了多少个字符,然后评估外部打印 5。

于 2012-09-27T16:31:40.020 回答