C++函数与指针

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

我有一个任务要写一个小程序,包括使用指针和函数来求平方根。我得到一个错误,说3个重载都不能转换所有参数类型 提前谢谢你的帮助

这是我到目前为止的代码。我知道这里很乱,希望你们能帮忙

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,然后通过指针返回平方根。