gpt4 book ai didi

c - 为什么它的输出为 'bye' ?请讨论

转载 作者:行者123 更新时间:2023-11-30 20:48:00 24 4
gpt4 key购买 nike

请给出输出的原因...为什么在条件 if 语句为 true 时给出“再见”,因为 int 的大小是 2 或 4 字节。

   #include<stdio.h>
#include<conio.h>
int main()
{
if(sizeof(int)>-1)
printf("hi");
else
printf("bye");
return 0;
}

最佳答案

参见http://en.cppreference.com/w/c/language/sizeof

Both versions return a value of type size_t.

参见 size_t,http://en.cppreference.com/w/c/types/size_t
它表明它未签名。

如果因此比较有效且具有较高的正值,
那么逻辑表达式基本上总是假的。

如果您愿意帮助编译器了解您真正想要做什么,
例如通过更改为

((int)sizeof(int))>-1

事情不同了。

关于c - 为什么它的输出为 'bye' ?请讨论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50692049/

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