首页 > 文章列表 > C++ 函数中引用参数和指针参数的高级用法

C++ 函数中引用参数和指针参数的高级用法

函数 参数 c++
122 2024-04-23

C++ 函数中的引用参数(本质为变量别名,修改引用修改原始变量)和指针参数(存储原始变量的内存地址,通过解引用指针修改变量)在传递和修改变量时有着不同的用法。引用参数常用于修改原始变量(尤其是大型结构体),传递给构造函数或赋值运算符时避免复制开销。指针参数则用于灵活指向内存位置,实现动态数据结构或传递空指针表示可选参数。

C++ 函数中引用参数和指针参数的高级用法

C++ 函数中引用参数和指针参数的高级用法

在 C++ 函数中,引用参数和指针参数允许以不同的方式传递和修改变量。了解它们的差异并合理使用至关重要。

引用参数

引用参数本质上是变量的别名。对引用参数所做的任何更改都会反映到原始变量中。

语法:

void func(int& ref_param)
{
    ref_param++; // 修改引用参数会修改原始变量
}

指针参数

指针参数存储原始变量的内存地址。通过指针可以访问并修改原始变量,但不会创建一个副本。

语法:

void func(int* ptr_param)
{
    *ptr_param++ // 通过解引用指针可以修改原始变量
}

使用场景

  • 引用参数:

    • 当需要在函数内修改原始变量时
    • 传递大型结构体或类对象,避免复制的开销
    • 将对象作为非 const 引用传递给构造函数或赋值运算符
  • 指针参数:

    • 当需要灵活地指向不同的内存位置时
    • 实现动态数据结构,如链表
    • 传递空指针以指示可选参数

实战案例:

使用引用参数交换两个数

void swap(int& a, int& b)
{
    int temp = a;
    a = b;
    b = temp;
}

使用指针参数访问数组

void printArray(int* arr, int n)
{
    for (int i = 0; i < n; i++)
    {
        cout << arr[i] << " ";
    }
    cout << endl;
}