修改并返回函数中两个浮点数(或双精度数的最佳方法?

问题描述 投票:0回答:1

我试图返回两个值uv,我将它们作为参数传递给函数get_uv( float u, float v )

由于double和float与整数类型不兼容,我们可以将它们转换为指针,并且以下代码给我们带来错误:无法转换为指针类型。

void calc_uv( float *u, float *v )
{
    u = (float *) 0.0f;
    v = (float *) 1.0f; 
}

void anyfunction()
{
    float u, v;
    calc_uv( &u, &v )

    printf("u: %f , v: %f", u, v);
}

如果使用,它会起作用:

void calc_uv( float *u, float *v )
{
    *u = 0.0f;
    *v = 1.0f; 
}

但是我不明白为什么,因为u和v已经是指针。您能告诉我这是怎么回事吗?

修改和从函数返回两个浮点数的最佳方法是什么?

[我看到我可以使用float *f = malloc(sizeof *f);之类的东西,但我的目标不是通过钩子或弯钩获取指针,只是以最简洁或简洁的方式更改输入值。

c pointers arguments
1个回答
-1
投票
float u, v;
calc_uv( &u, &v )

[&u表示引用u(指针)

[&v表示引用v(指针)

void calc_uv( float *u, float *v )

float *u-浮点指针

float *v-浮点指针

© www.soinside.com 2019 - 2024. All rights reserved.