-5

如果您将编译并执行以下 c 语句,将输出什么?

if(printf("This is"))
  printf(" tricky question");

输出是
This is tricky question

4

2 回答 2

4

printf的文档解释了为什么会发生这种情况

返回值

成功返回后,这些函数返回打印的字符数(不包括用于结束输出到字符串的空字节)。

printf("This is")返回 7,因此您的if条件成功。

于 2013-08-19T07:14:33.567 回答
3

printf 函数的返回类型是整数,它返回它打印的字符数,包括空格。
因此,如果条件中的 printf 函数将返回 7。并且This is
在 if 条件中打印消息,任何非零数字都表示为真,因此 else 部分将不会执行。并打印按摩tricky question

于 2013-08-19T07:14:24.600 回答