求教一个空间复杂度问题
函数:
float rsum( float a[] , const int n){
if (n <=0 ) return 0 ;
else return rsum (a , n-1) + a[n-1] ;
}
“为了实现递归过程,用到了一个递归栈,每递归一层就要加一个工作记录到递归栈中,工作记录为形式参数(a[]的首地址a[0],n)、函数的返回值和返回地址保留了4个存储单元。由于算法的递归深度为n+1,故所需的栈空间是4(n+1)。”
这是清华大学出版社 数据结构(用面向对象方法与C++描述) 殷人昆等 著 这本书中第27页中讲的。
小弟想请教:为什么“函数的返回值和返回地址保留了4个存储单元”?怎么是4个?