当你调用一个函数时,传递给函数的参数如果不是数组或者不是有意使用与符号 (&) 的引用传递,则它们是按值传递的。例如,
void boo (int a, int b) {
}
int main() {
int var1 {1};
int var2 {2};
boo(var1,var2);
return 0;
}
在这种情况下,整数变量 var1 和 var2 的值被复制到函数参数 a 和 b 并存储在为“boo”函数分配的堆栈帧中。我的问题是:
1-如果我写:
void boo (int a, int b) {
}
int main() {
boo(1,2);
return 0;
}
整数文字 1 和 2 是否未存储在 main 堆栈帧中,因为它们现在是 r 值?
2-如果我改为写:
void boo (int &a, int &b) {
}
int main() {
int var1 {1};
int var2 {2};
boo(var1,var2);
return 0;
}
参数a和b是否仍然存储在“boo”函数的堆栈帧中作为某种备份等。或者它们只是对实际参数var1和var2的引用现在?
我是 C++ 的新手,如果我的问题听起来很愚蠢,我深表歉意。
提前谢谢你=)