为什么备忘录不需要指针?

问题描述

例如,在此代码中,工作正常,使用数组而不是指向数组的指针进行存储。 (int mem []代替int * mem)

int fibonacci(int n,int mem[]){
    if(n < 3)
    return 1;   

    if(mem[n])
    return mem[n];

    mem[n] = fibonacci(n - 1,mem) + fibonacci(n - 2,mem);
    return mem[n];
    } 

int climbStairs(int n){
    int mem[50] = {0};
    return fibonacci(n + 1,mem);
}

我不知道当其中一个函数返回时,返回的函数调用函数如何返回 将数据保存到先前的mem [n]。函数返回时是否应该删除函数数组?在该函数返回后,调用函数调用的另一个函数如何具有该值?

注意:这是在leetcode中解决爬楼梯的解决方案。由我写。

解决方法

在函数参数中使用[]时,它是一个指针。

int foo(int x[])

int foo(int *x)

等于100%。

但是,这将是另外一回事:

int foo(int x[10])