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

Cách tìm độ dài mảng trong C/C++

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.