为什么我的简单C程序打印" hello world"并且在没有错误的情况下进行编译,并且当我在return语句旁边给出一个浮点数时运行正常?这不是一个错误吗?
这是我的代码:
#include<stdio.h>
int main()
{
printf("hello world");
return 2.1;
}
答案 0 :(得分:3)
当从函数的声明类型返回不同的类型时,该值将自动转换为声明的类型。所以它等同于:
return (int) 2.1;
答案 1 :(得分:3)
答案 2 :(得分:1)
返回代码将在返回时自动生成。 长版是
return (int) 2.1;
答案 3 :(得分:0)
您的代码将返回一个整数,因为编译器会负责将float转换为整数。
答案 4 :(得分:0)
这是正常的,因为值可以隐式转换为声明的类型。编译器不介意,但你会在运行时得到意想不到的结果,在这个特定的情况下,转换为(int)。