04-01递归原理分析_分析方法调用

来源:互联网 发布:更改网卡mac地址 编辑:程序博客网 时间:2024/06/10 12:29

分析方法调用

请分析如下的递归方法调用:

int f(int[] a, int n)
      {
        if(n==0) return a[0];
        return f(a, n-1) + a[n];
      }

1. 它实现了什么功能?

2.int[] a = {1,2,3,4};

int k = f(a,3);

当 n = 0 时,试画出栈中局部变量的情况。

 -------------------------------------------------------------------------------------------------------------------



1. 该方法实现了对数组的前边n+1个元素求和。


2. 当n=0时,栈中局部变量的情况:


int n = 0
int[] a = 数组地址
int n = 1
int[] a = 数组地址
int n = 2
int[] a = 数组地址
int n = 3
int[] a = 数组地址
int k
int[] a = 数组地址 (这个是主调程序的局部变量,前边的a是形参变量)
.....
栈底


0 0
原创粉丝点击