gpt4 book ai didi

c++ - 通过引用和内存使用

转载 作者:行者123 更新时间:2023-11-27 23:06:25 26 4
gpt4 key购买 nike

在 C++ 中通过引用传递参数时,它如何处理基于这些引用之一定义的变量。例如,我创建了一个函数 MyFunc1,然后创建了一个备用函数 MyFunc2 来尝试实现相同的功能。在第二个中,有一个 y 是根据 x 定义的。就使用的内存量而言,y 是否也被视为引用?

int MyFunc1(const int &x, const int &a, const int &times_minus_one=1) {
if (times_minus_one == 1) {
return -x * a;
} else {
return x * a;
}
}

int MyFunc2(const int &x, const int &a, const int &times_minus_one=1) {
int y = x;
if (times_minus_one == 1) {
y = y * -1;
}
return y * a;
}

最佳答案

按照您在 MyFunc2 中定义 y 的方式,y 是原始变量的拷贝。这里拷贝正在栈上实例化,并将占用栈上的 sizeof(y) 内存。

例如,如果您将 y 定义为 const auto& y = x;,那么 y 将是一个引用,它只是指针的大小。

关于c++ - 通过引用和内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23253524/

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