以下代码如何工作?
void main()
{
printf("%d", printf("earth"));
}
这给出了输出:earth5
.
的返回值printf
是打印的字符数。printf
首先调用内部。相当于:
int rc = printf("earth");
printf("%d", rc);
这绝对没问题:-)
print("earth") 输出 earth 并返回 5(打印的字符数)。
另一个 printf 获取 5 作为参数并将其输出为整数(因为 %d)
%d
期望一个整数来打印它。printf
返回打印的字符数,并且您正在打印一个 5 字符的字符串。
它首先评估内部打印以找出打印了多少个字符,然后评估外部打印 5。