此计划的第7行不是“pay = prt(pay);”应该抛出编译或运行时错误,因为它将int传递给需要double的param?我用dev-c ++编译好了,用两行输出运行程序。请解释一下,谢谢。
#include <stdio.h>
int prt(double b);
main ()
{
int pay = 3;
double tax = 2.2;
pay = prt(pay);
prt(tax);
}
int prt(double b)
{
b *= 2;
printf("%.2lf\n", b);
}
答案 0 :(得分:6)
C会自动在不同的数字类型之间进行转换。
答案 1 :(得分:3)
您将函数声明为int
但从未返回任何内容,并且也没有给main
返回类型。我会说任何编译器都有权拒绝你的代码。
答案 2 :(得分:-1)
具有更小或相等大小的数据类型可以转换为更高的数据类型。
相反的情况: 浮点到int会导致截断,即删除小数部分。 double to float导致数字四舍五入 long int to int导致丢弃多余的高阶位。