Skip to content

指针值传递与引用传递的比较

在 C++ 中使用指针作为函数参数时,有两种常见的传递方式:值传递和引用传递。

  • 值传递:适用于只需要使用指针指向的内容,而不需要修改指针本身的情况。
  • 引用传递:适用于需要修改指针本身,或者函数内部需要重新分配指针所指向的内存空间的情况。

1 值传递

值传递意味着函数参数接收的是实参的副本,而不是实参本身。当我们以值传递方式传递指针时,函数接收到的是指针的副本,即一个新的指针变量,而不是原始指针的引用。

void aaa(int* a) { a = new int(3); }

2 引用传递

引用传递通过传递指针的引用,使得函数能够直接修改指针的值,而不是指针的副本。

void bbb(int*& a) { a = new int(3); }