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

Tìm kích thước mảng trong C/C++ không dùng sizeof


Chương trình này tìm kích thước mảng không dùng sizeof.

Thuật toán

Bắt đầu
    Khởi tạo phần tử mảng
    &a => Con trỏ mảng trỏ cùng địa chỉ với a
    &a + 1 => Trỏ địa chỉ sau cuối mảng
    *(&a + 1) => Gián tiếp lấy địa chỉ sau phần tử cuối
    *(&a + 1) - a => Trừ con trỏ phần tử đầu lấy độ dài mảng
    In kích thước
Kết thúc

Ví dụ mã

#include <iostream>
using namespace std;

int main() {
    int a[] = {6,7,5,3,1,4,2,10,9};
    int s = *(&a + 1) - a;
    cout << "Số phần tử mảng là " << s;
}

Kết quả

Số phần tử mảng là 9