c语言初级问题请教!

如下递归函数,为什么pow必须赋初值1?

double power(double n, int p)
{
double pow=1;//必须赋给初值1
if(p >0)
pow = n*power(n,p-1);

return pow;

}

初始值。指数的次数值最小就是1。
当p>0的时候不满足条件,返回的值就是1了。

这样写你就懂了,if (pow <=0) pow = 1; else xxx; return pow;