C++中的引用传递和const引用传递[重复]

问题描述 投票:0回答:0

所以我认为你可以按值传递参数,这会创建你放入函数中的任何内容的副本,或者按引用传递直接使用变量,从而在函数内部启用它的修改(除非你通过 const 引用传递) . 我认为这意味着您必须先创建变量,然后再通过引用传递它,因此内存中存储了一个地址供参数使用。但是,如果您通过 const 引用传递参数,则不必这样做。所以你可以只写

foo(5)
(foo 接收一个 const int& 参数),即使没有“5”的地址它也会工作(至少我认为是这样)。如果 foo() 收到一个 int& 参数,它就不起作用。所以我想知道我是否错了以及在这种情况下如何传递参数。

像这样:

void foo (int& a) {

}

int main() {
    foo(5);
}

// this doesn't work

void foo (const int& a) {

}

int main() {
    foo(5);
}

// this works though
c++ function parameter-passing
© www.soinside.com 2019 - 2024. All rights reserved.