【发布时间】:2021-12-10 04:33:56
【问题描述】:
为什么int hum2() 函数返回布尔类型?函数不应该返回我定义的类型。就像 Float 函数返回浮点值 Double 函数返回一个双精度值。
#include<stdio.h>
int hum2()
{
return true;
}
bool hum(){
return false;
}
int main()
{
printf("%d\n",hum2());
printf("%d\n",hum());
return 0;
}
【问题讨论】:
-
自动类型提升。 Bool 转换为 int
-
是什么让您认为它确实返回布尔值?
-
答案取决于您使用的语言,因为 C 最初并不知道 boolean 或
bool。因此,请选择您想要回答的语言,不要标记其他语言。我假设您询问的是 C++ 而不是 C,因为显示的代码确实编译为 C++ 但不是 C。这里tutorialspoint.com/compile_c_online.php 和这里tutorialspoint.com/compile_cpp_online.php -
我不明白这个问题。为什么你认为
hum2在这里返回一个布尔类型?它显然返回了int。 -
在带有 cout 等的 C++ 中,如果您打开 boolalpha 选项en.cppreference.com/w/cpp/io/manip/boolalpha,您可以让它打印出 bool
标签: c++ boolean implicit-conversion integer-promotion