所以我认为你可以按值传递参数,这会创建你放入函数中的任何内容的副本,或者按引用传递直接使用变量,从而在函数内部启用它的修改(除非你通过 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