gpt4 book ai didi

c - 为什么 printf 不等同于 scanf?

转载 作者:太空宇宙 更新时间:2023-11-04 00:11:46 25 4
gpt4 key购买 nike

我有一个显示“hi”的程序,但我不明白为什么。

我知道 scanf 和 printf 都会返回它们读/写的字符数,但在这种情况下它是如何工作的?

void main()
{
if(printf==scanf)
printf("hello");
else
printf("hi");
}

最佳答案

您不是在调用函数并比较结果,您是在比较函数本身,这归结为比较函数的地址(函数名称将在许多情况下转换为函数指针,这是一个)。你写的是这样的:

/* this is the correct signature for main by the way, not `void main()` */
int main(int argc, char **argv) {
/* compare the address of printf to that of scanf */
if (&printf == &scanf) {
printf("hello");
} else {
printf("hi");
}
}

scanfprintf不是相同的功能,它们位于不同的地址,因此比较失败并且 hi打印出来。

关于c - 为什么 printf 不等同于 scanf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10798688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com