这可能是个愚蠢的问题,但我很困惑。这就是为什么我要消除我的疑虑。昨天,在我的面试中,我收到了一个问题,例如
char ch="Hello";
printf("%d",printf("%s",ch));
我以为printf
是一个 void 类型的函数,因为我从来没有见过printf
分配给任何变量的函数。所以,我告诉过,它将显示编译错误。因为,编译器找不到返回类型 printf
功能。但是我错了。输出是Hello5。我真的很困惑,这是怎么来的。
最佳答案
函数 fun() 返回一个 int,你只是没有将它分配给任何东西。因此返回值被丢弃,因为它没有分配给任何东西。
顺便说一下,printf 不是一个 void 函数,而是返回打印的字符数,在“Hello”的情况下为 5。
关于c - printf的返回类型是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13588320/