gpt4 book ai didi

c++ - 参数中的指针和引用

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:23:15 27 4
gpt4 key购买 nike

我在几个树代码中看到树类的函数同时具有 * 和 & 节点例如,要在 BST 中插入一个节点,函数是这样的

insertnode(node * &t,string value)
{
t = new node; t-> val = value
// code to find right place in BST
}

我想知道为什么我们通常将引用传递给指针,尤其是在这种情况下。如果还有其他情况,请同时说明,谢谢

而不是发布另一个问题。有人还可以指出对象类的使用吗?我的意思是使用对象类的实例是否为所有子类分配了所有内存?即 int float 等

最佳答案

与任何其他变量一样,指针按值传递,除非您指定要按引用传递它。

void foo(int* x)
{
x = new int[1];
}

void goo(int*& x)
{
x = new int[1];
}

int* x = NULL;
foo(x);
//x is NULL here, and you also have a memory leak
goo(x);
//x points to an array of 1 int

在你的例子中,你传递了一个指针的引用,因为你想修改原始指针。修改指针并不意味着改变它指向的值,而是改变它指向的地址。

关于c++ - 参数中的指针和引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9564092/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com