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