如何正確地將帶指針參數的函數作爲參數傳遞給另一個函數並返回值?使用帶指針參數的函數作爲另一個函數的參數
我有一個函數採用兩個參數中的指針的形式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元素數組。你沒有兩個數組來調用它。 (並且計算出任何兩種質量的距離似乎都是不可信的。) –