所以我了解如何将地址传递给 C 函数以避免传递值。但我不明白的是在 C++ 中通过引用传递。我对 C 缺乏理解,如果你要通过引用传递变量,你只会int根据地址得到一个无意义的值。比如如果你这样做了:
int x = 5;
int* p = x;
int y = p;
Run Code Online (Sandbox Code Playgroud)
这y将是一个无意义的int值。所以我不明白基于上述逻辑的C++引用传递。是否有一些编译器识别您正在尝试执行的操作,以便它以使其等效于 C 代码的方式进行编译?有关 C 和 C++ 按指针和按引用传递的信息,请参阅下文:
// C pass by pointer value
void main() {
int a = 1;
int b = 2;
swap(&a, &b);
}
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
// C++ pass by reference
void main() {
int a = …Run Code Online (Sandbox Code Playgroud)