小编Ste*_*879的帖子

C 和 C++ 指针传递和引用传递混淆

所以我了解如何将地址传递给 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)

c c++ pointers reference

2
推荐指数
1
解决办法
555
查看次数

标签 统计

c ×1

c++ ×1

pointers ×1

reference ×1