【发布时间】:2021-04-26 16:05:13
【问题描述】:
最近开始学习C++,我不明白为什么要定义一个函数,比如
void change_value (int &b);
但是当你在 main 中调用函数时,
int test = 10;
change_value (test);
您不使用 &test,而是使用变量本身 (test)。
【问题讨论】:
最近开始学习C++,我不明白为什么要定义一个函数,比如
void change_value (int &b);
但是当你在 main 中调用函数时,
int test = 10;
change_value (test);
您不使用 &test,而是使用变量本身 (test)。
【问题讨论】:
&在不同的语境中有不同的含义。
b 参数使用& 来声明它是reference 到int。 & 是参数类型 (int&) 的一部分。调用该函数时,您只需传入您希望b 引用的int 变量,该引用将绑定到该变量。
如果调用者先于int 变量,它通过& 传入,这将调用address-of 运算符来获取变量的地址,产生@987654322 @ 变量。
reference 和 pointer 是两个完全不同的东西。
【讨论】:
some_other_function (&test); 用于注释地址(尽管这没有任何意义如果给出上下文,则使用 OP 很有用)。