C++函数与指针
我有一个任务要写一个小程序,包括使用指针和函数来求平方根。我得到一个错误,说3个重载都不能转换所有参数类型 提前谢谢你的帮助 这是我到目前为止的代码。我知道这里很乱,希望你们能帮忙C++函数与指针,c++,function,pointers,C++,Function,Pointers,我有一个任务要写一个小程序,包括使用指针和函数来求平方根。我得到一个错误,说3个重载都不能转换所有参数类型 提前谢谢你的帮助 这是我到目前为止的代码。我知道这里很乱,希望你们能帮忙 void SqrRt(unsigned long int *, unsigned long int *); int main() { unsigned long int number, root; cout << "Type in any number greater than 0
void SqrRt(unsigned long int *, unsigned long int *);
int main() {
unsigned long int number, root;
cout << "Type in any number greater than 0 to find it's square root: ";
cin >> number;
SqrRt(&number, &root);
return 0;
}
void SqrRt(unsigned long int *num, unsigned long int *rt){
if (num >= 0)
rt = sqrt(num);
else
cout << "Invalid input! Number should be greater than 0!";
}
sqrt只能处理数字,而不能处理指向数字的指针,所以您需要做的一切就是取消对传递给sqrt的指针的引用
此外,sqrt还返回一个数字,因此您还应该取消对分配给它的指针的引用 您需要将rt=sqrtnum重写为*rt=sqrt*num。代码的问题在于您没有引用底层对象,即指针指向的对象。如果可能的话,我建议您使用引用,因为与指针相比,使用引用更容易。rt=sqrtnum;应为*rt=sqrt*num;请求在计算平方根的程序中使用指针是一个荒谬的赋值。我建议通过值而不是指针来传递num,然后通过指针返回平方根。