小编Art*_*Art的帖子

如何在递归函数中存储值?

假设您有以下递归函数。假设节点参数是头:

def to_string(node):
    a_str = ""

    if node.next != None:
        a_str += str(node.val)
        to_string(node.next)
    else:
        return a_str
Run Code Online (Sandbox Code Playgroud)

我想记录所有节点的值。该代码能够获取这些值,因为它正在使用下一个节点 调用自身,to_string(node.next)但它无法存储这些值并返回正确的字符串,因为a_str它会在每次调用时重新初始化。是否有函数内解决方案,或者我必须依赖全局变量?

python recursion linked-list

6
推荐指数
1
解决办法
9303
查看次数

为什么auto y = reference_to_x的地址与x的地址不一样?

假设您有以下代码:

long& fn2(long& another_var1, long another_var2){

    another_var1 = another_var1 + another_var2;
    another_var2 = another_var2 + another_var1;

    return another_var1;
}

int main (){
    cout << boolalpha;

    long var1 = 5;
    long var2 = 10;

    auto result = fn2(var1, var2);

    cout << &result << endl;
    cout << &var1 << endl;
    cout << result << endl; //Line 1
    cout << (&result == &var1) << endl; //Line 2 
}
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作,直到你到达Line 2,false返回的地方.当你auto result,它应该是一个引用变量another_var1,它是一个引用var1,即它们都应该具有相同的地址 - 它们只是同一内存的名称别名.看着 …

c++ pointers reference memory-address

4
推荐指数
1
解决办法
162
查看次数