Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Truyền mảng bằng tham chiếu trong C++

Truyền mảng bằng tham chiếu (reference) cho phép hàm biết chính xác kích thước mảng tại compile-time, tránh array-to-pointer decay.

Cú pháp

void func(int (&arr)[10]); // tham chiếu đến mảng 10 int

Hoặc dùng template để tự động suy diễn kích thước:

template <size_t N>
void func(int (&arr)[N]);

Ví dụ: Truyền từng phần tử bằng con trỏ (cách cũ)

#include <iostream>
using namespace std;

void show(int *num) {
    cout << *num;
}

int main() {
    int a[] = {3,2,1,6,7,4,5,0,10,8};
    for (int i = 0; i < 10; ++i)
        show(&a[i]); // truyền địa chỉ từng phần tử
    return 0;
}

Kết quả

32167450108

Hiện đại hơn: Dùng std::array hoặc std::vector để truyền bằng tham chiếu an toàn và tiện lợi.