【发布时间】:2014-11-02 21:19:23
【问题描述】:
我在练习一些 C 问题时遇到了一个场景,其中递归函数使用表达式作为参数调用自身。
Pow(double x, unsigned n){
.....
.....
return Pow(x*x,n/2);
}
我的问题是在评估表达式时是否传递参数(x * x,如按值调用)还是这是一个惰性评估,即直到使用时才评估。
下面是详细问题
求调用 Pow(5.0,12) 的乘法数?
Pow(double x, unsigned n) {
if(n==0) return 1;
if(n==1) return x;
if(n%2==0) return Pow(x*x,n/2);
else
return Pow(x*x,n/2)*x;
}
选项 5、6、8、12
【问题讨论】:
标签: c recursion parameter-passing generic-programming call-by-value