返回首页 C++ 模板

函数参数传递模板

值传递、引用传递、指针传递——理解参数如何传入函数

参数传递 值传递 引用传递 指针 GESP4
#include <bits/stdc++.h>
using namespace std;

// 值传递:复制一份,不影响原变量
void byValue(int x) { x = 100; }

// 引用传递:直接操作原变量
void byRef(int &x) { x = 100; }

// 指针传递:通过地址操作原变量
void byPtr(int *x) { *x = 100; }

// const 引用:避免复制,但不允许修改
void printArr(const vector<int> &v) {
    for (int x : v) cout << x << " ";
    cout << endl;
}

// 数组参数(退化为指针)
void printArr(int arr[], int n) {
    for (int i = 0; i < n; i++) cout << arr[i] << " ";
    cout << endl;
}

int main() {
    int a = 5;
    byValue(a);  cout << a << endl;  // 5(没变)
    byRef(a);    cout << a << endl;  // 100(变了)
    a = 5;
    byPtr(&a);   cout << a << endl;  // 100(变了)

    vector<int> v = {1, 2, 3};
    printArr(v);  // 1 2 3

    int arr[] = {10, 20, 30};
    printArr(arr, 3);

    return 0;
}

📖 要点说明

⚠️ 常见错误