C++引用和C指针

4 c c++ pointers reference

可能重复:
C++中指针变量和引用变量之间有什么区别?

我对C中的指针(无论如何都是基础知识)有所了解并开始阅读C++.我正在阅读的这本书直接引用了参考文献,并且在索引中查找指针直到稍后才开始.

在C中,我想如果我想通过引用函数进行传递,我将不得不使用指针作为参数,例如

void swapAandB(int *A, int *B){

//do something
}
Run Code Online (Sandbox Code Playgroud)

但是C++书决定将对原始变量的引用放入函数中.例如

void swapAandB(int& A,  int& B){

 //do something
}
Run Code Online (Sandbox Code Playgroud)

我的C++书没有解释为什么我们不像C中那样使用指针.所以我有点困惑.我想我的问题是这里发生了什么?

ser*_*gio 5

引用是C++提供的与C相比的其他机制.在C++中使用指针是完全合法的,因此您仍然可以定义未修改的第一个函数:

void swapAandB(int *A, int *B){

 //do something
}
Run Code Online (Sandbox Code Playgroud)

引用提供的主要优点是指针具有等效的NULL指针并不容易.但是,在将C++特性塑造为语言时,语义和语法上的引用都远远超出了这一点.我认为一旦你掌握了更多语言,这将变得更加清晰.无论如何,您可以尝试阅读本文关于指针和引用之间区别.