C++函数和指针

C++ functions and pointers

本文关键字:指针 函数 C++      更新时间:2023-10-16

我有一个任务,要写一个小程序,其中包括使用指针和函数来查找平方根。我收到一个错误,说"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 = sqrt(num)*rt = sqrt(*num) 。代码的问题在于您没有引用底层对象,即指针指向的对象。我建议您尽可能使用引用,因为与指针相比,它更容易使用。