Souka2 发表于 2022-9-8 15:53:49

求助该算法实现的功能

void fun(double &y,double x,int n)
{
    y=x;
    while(n>1){
      y=y*x;
      n--;
    }
}

dolly_yos2 发表于 2022-9-8 15:59:54

有哪行的代码看不懂吗?如果没有,按照每行的语义模拟执行一遍就理解了吧

jackz007 发表于 2022-9-8 16:00:46

本帖最后由 jackz007 于 2022-9-8 16:02 编辑

y = x ^ n ;

Souka2 发表于 2022-9-8 16:07:37

dolly_yos2 发表于 2022-9-8 15:59
有哪行的代码看不懂吗?如果没有,按照每行的语义模拟执行一遍就理解了吧

不太懂为啥是&y ,前面的这个不就表示取地址吗

dolly_yos2 发表于 2022-9-8 16:12:20

Souka2 发表于 2022-9-8 16:07
不太懂为啥是&y ,前面的这个不就表示取地址吗

这个应该是 C++ 中的语法:引用。一定程度上可以认为与 C 中向函数中传递指针等效,可以用于让函数可以修改外部变量,但语法上更简洁。
换言之,对此函数的调用若为
fun(result, 3.0, 10);
则此函数将修改 result 的值。此函数的功能与三楼所述一致,即上述调用返回后 result 的值应为 3.0^10 (不考虑任何溢出)

jackz007 发表于 2022-9-8 16:17:32

Souka2 发表于 2022-9-8 16:07
不太懂为啥是&y ,前面的这个不就表示取地址吗

void fun(double &y,double x,int n)// 在函数定义中,& y 不是取地址,而是变量引用。形式参数 y 在函数中的改变可以被反馈到函数调用处。
页: [1]
查看完整版本: 求助该算法实现的功能