Dưới đây là các phương pháp phổ biến để tìm độ dài của một mảng:
Phương pháp 1: Sử dụng toán tử sizeof
Toán tử sizeof() có thể dùng để tính độ dài mảng. Chương trình dưới đây minh họa trong C++:
Ví dụ
#include <iostream>
using namespace std;
int main() {
int arr[5] = {4, 1, 8, 2, 9};
int len = sizeof(arr) / sizeof(arr[0]);
cout << "Do dai cua mang la: " << len;
return 0;
}
Kết quả:
Do dai cua mang la: 5
Giải thích: Biến len lưu độ dài mảng. Độ dài được tính bằng cách lấy kích thước toàn bộ mảng (sizeof(arr)) chia cho kích thước một phần tử (sizeof(arr[0])).
Phương pháp 2: Sử dụng con trỏ
Toán học con trỏ (pointer arithmetic) cũng có thể dùng để tìm độ dài mảng.
Ví dụ
#include <iostream>
using namespace std;
int main() {
int arr[5] = {5, 8, 1, 3, 6};
int len = *(&arr + 1) - arr;
cout << "Do dai cua mang la: " << len;
return 0;
}
Kết quả:
Do dai cua mang la: 5
Giải thích: &arr + 1 là địa chỉ ngay sau mảng (sau 5 phần tử). Ép kiểu và lấy giá trị *(&arr + 1) cho địa chỉ cuối mảng. Trừ đi arr (địa chỉ đầu mảng) sẽ ra số phần tử.
Lưu ý: Cách này chỉ hoạt động với mảng tĩnh (khai báo kích thước tại compile-time). Không dùng được cho mảng động hoặc con trỏ truyền vào hàm.