gpt4 book ai didi

c++ - "Pass by * &"是做什么用的?

转载 作者:太空狗 更新时间:2023-10-29 20:05:34 25 4
gpt4 key购买 nike

这是什么意思?我理解按引用传递的用途是传递引用,因此您可以直接更改它而无需返回,并且按指针传递类似但运行时间较慢。但是,我不明白 * & 是做什么的。例如,

foo(int * & var) { }

最佳答案

它通过引用传递指针,以便您可以更改指针指向的内容并将这些更改反射(reflect)给调用者。

例如:

void notByReference(int *p) {
p = nullptr;
}

void byReference(int *&p) {
p = nullptr;
}

int main() {
int *i = new int;
notByReference(i); //i is not changed since a copy of the pointer was passed
byReference(i); //i itself is changed, leaking memory
}

关于c++ - "Pass by * &"是做什么用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12664102/

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