我有一个代码片段..
printf("%d", printf("tim"));
函数 printf 打印值 tim3 .. 第二个 printf 语句没有说明符,那么为什么字符数与字符串 "tim" 一起打印?
当我只运行这段代码时..printf("tim");
我得到输出,tim Exited: ExitFailure 3
为什么会这样?
第一个 printf 语句在printf("tim")
期望整数时如何作为参数?
我有一个代码片段..
printf("%d", printf("tim"));
函数 printf 打印值 tim3 .. 第二个 printf 语句没有说明符,那么为什么字符数与字符串 "tim" 一起打印?
当我只运行这段代码时..printf("tim");
我得到输出,tim Exited: ExitFailure 3
为什么会这样?
第一个 printf 语句在printf("tim")
期望整数时如何作为参数?
printf
返回打印的字符数,因此printf("tim")
返回 3,因为字符串中有 3 个字符。
第二个printf
需要先评估,然后才能在格式字符串中使用它的值,因此首先打印它。
至于您的输出tim Exited: ExitFailure 3
,这看起来更像是您在打印时遇到了另一个问题。注释掉这些行,您可能会在其他地方发现问题。
printf
如果未指定格式说明符,则按原样打印字符串。所以将按原样printf("Hello");
打印。Hello
您也可以通过使用格式说明符来做同样的事情 -printf("%s", "Hello");
printf
还返回打印的字符数。所以printf("Hello");
首先打印字符串Hello
然后返回5
。
在您的声明中,您正在打印printf
使用的返回声明printf("%d", ...);
实际上,您给出的声明可以这样写-
int i = printf("tim");
printf("%d", i);
至于失败,我猜你return printf("tim");
的main
功能中有一个。