C++ Pass Arrays: Định Nghĩa và Cú Pháp
Trong C++, mảng (array) là một cấu trúc dữ liệu cho phép lưu trữ nhiều giá trị của cùng một loại dữ liệu. Khi bạn muốn truyền một mảng vào một hàm, bạn cần hiểu cách mà C++ xử lý việc truyền mảng, vì mảng không được truyền theo cách thông thường (theo giá trị) mà được truyền theo kiểu tham chiếu.
Định Nghĩa
Khi một mảng được truyền vào hàm, thay vì truyền tất cả các phần tử của mảng, C++ chỉ truyền địa chỉ (address) của phần tử đầu tiên trong mảng đó. Điều này có nghĩa là những thay đổi được thực hiện trong hàm sẽ ảnh hưởng đến mảng gốc.
Cú Pháp
Cú pháp để định nghĩa một hàm nhận mảng là khá đơn giản. Bạn có thể chỉ định kiểu dữ liệu của mảng và sử dụng dấu ngoặc vuông ([]) để chỉ ra rằng đối số đó là một mảng. Dưới đây là cú pháp cơ bản:
trong_hàm_tên(const kiểu_dữ_liệu tên_mảng[], const int kích_thước) {
// mã lệnh
}
Trong đó:
- kiểu_dữ_liệu: Kiểu dữ liệu của các phần tử trong mảng (ví dụ: int, float, char).
- tên_mảng: Tên của mảng (có thể đặt tên theo ý muốn).
- kích_thước: Kích thước của mảng, thường được truyền như một tham số để hàm biết số lượng phần tử cần xử lý.
Ví Dụ
Ví Dụ 1: Tính Tổng Các Phần Tử Của Mảng
#include
using namespace std;
void tinhTong(int arr[], int n) {
int tong = 0;
for (int i = 0; i < n; i++) {
tong += arr[i];
}
cout << "Tổng của mảng là: " << tong << endl;
}
int main() {
int mang[] = {1, 2, 3, 4, 5};
int n = sizeof(mang) / sizeof(mang[0]); // Tính kích thước mảng
tinhTong(mang, n);
return 0;
}
Trong ví dụ này, hàm tinhTong nhận một mảng arr và kích thước của nó n để tính tổng tất cả các phần tử trong mảng.
Ví Dụ 2: Thay Đổi Giá Trị Trong Mảng
#include
using namespace std;
void thayDoiGiaTri(int arr[], int n) {
for (int i = 0; i < n; i++) {
arr[i] *= 2; // Nhân đôi giá trị từng phần tử
}
}
int main() {
int mang[] = {1, 2, 3, 4, 5};
int n = sizeof(mang) / sizeof(mang[0]);
thayDoiGiaTri(mang, n);
cout << "Mảng sau khi thay đổi: ";
for (int i = 0; i < n; i++) {
cout << mang[i] << " ";
}
cout << endl;
return 0;
}
Trong ví dụ này, hàm thayDoiGiaTri sẽ nhân đôi giá trị của từng phần tử trong mảng. Sau khi hàm được gọi, các giá trị trong mảng gốc sẽ được cập nhật.
Kết Luận
Việc truyền mảng vào hàm trong C++ là một quá trình đơn giản nhưng mạnh mẽ, cho phép bạn thực hiện các thao tác với các tập hợp dữ liệu một cách hiệu quả. Khi làm việc với mảng, bạn sẽ cần chú ý đến kích thước của nó để đảm bảo không xảy ra lỗi truy cập bộ nhớ.