详谈C++引用&和指针在作为形参时的区别

2024-12-23 00:16:41
推荐回答(1个)
回答1:

事实上,C++只有传值、传引用两种(C++11多了一种传右值引用,暂不讨论)。

  • 传值:在函数开始时,新声明一个变量,将传入的参数以拷贝的形式赋值给新变量,原变量和新变量是完全两个不同的变量,只是在这一刻,两者内部存储的数据是一致的。

  • 传引用&:与原变量共享存储空间,传入参数时,参数必须要是一个左值变量(简单的说,就是能被赋值的那种变量)。

而指针,事实上也是传值,因为它是把参数中的指针变量(存放着指向对象的地址),赋值给函数中的新声明的指针变量,两个指针变量本身是不同的变量,只是它们指向了同一个地址。