如何正确地将带指针参数的函数作为参数传递给另一个函数并返回值?使用带指针参数的函数作为另一个函数的参数
我有一个函数采用两个参数中的指针的形式2门阵列(POS1和POS2):
float distance(float *pos1, float *pos2){
return sqrt(pow((pos1[0]-pos2[0]),2)+pow((pos1[1]-pos2[1]),2));
}
我想通过这个函数作为参数传递给另一个功能:
float force(float mass1, float mass2, float(*distance)(float,float), float scaling, float *pos1, float *pos2){
return distance(*pos1, *pos2); // how to correctly return the value?
}
这是返回值的正确方法吗?我是否还需要在“强制”功能中包含“距离”功能的参数?
谢谢!
'return distance(mass1,mass2);' – user657267
这里的事情是你传递的参数实际上是'float *'类型。这就是为什么我更喜欢在类型旁边写星号(而不是用逗号声明) – teivaz
除了其他问题,'距离'似乎想要传递两个2元素数组。你没有两个数组来调用它。 (并且计算出任何两种质量的距离似乎都是不可信的。) –