Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果您将编译并执行以下 c 语句,将输出什么?
if(printf("This is")) printf(" tricky question");
输出是 This is tricky question
This is tricky question
printf的文档解释了为什么会发生这种情况
返回值 成功返回后,这些函数返回打印的字符数(不包括用于结束输出到字符串的空字节)。
返回值
成功返回后,这些函数返回打印的字符数(不包括用于结束输出到字符串的空字节)。
printf("This is")返回 7,因此您的if条件成功。
printf("This is")
if
printf 函数的返回类型是整数,它返回它打印的字符数,包括空格。 因此,如果条件中的 printf 函数将返回 7。并且This is 在 if 条件中打印消息,任何非零数字都表示为真,因此 else 部分将不会执行。并打印按摩tricky question
This is
tricky question