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.