gpt4 book ai didi

C 将 int 值传递给 float 参数

转载 作者:太空狗 更新时间:2023-10-29 15:43:47 25 4
gpt4 key购买 nike

这是我的代码片段:

float square_root(x)
float x;
{
.......
}

int main(){
printf("Square_root 2 = %f\n", square_root(4));
}

当我将数字 4.0 传递给 square_root() 函数时,函数内的 x 参数为 4.0000000,所以没问题。但是当我只传递 4 时(如示例),函数内的 x 变量变为 1.976262583365e-323#DEN

为什么会这样?

最佳答案

您使用的是旧式函数声明,其中单独列出参数类型。参见 C function syntax, parameter types declared after parameter list

当您传递 int 时,默认情况下不会将其转换为 float。但是,您的函数将参数解释float,这会产生不良结果。

现代方法是在函数声明中包含参数类型,这将允许您的 int 参数自动转换为 float

float square_root(float x)
{
.......
}

关于C 将 int 值传递给 float 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13089662/

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