JavaScript is required

Cho đoạn chương trình:

struct ng {

unsigned ngay;

unsigned thang;

unsigned nam;

};

struct diachi {

int sonha;

char tenpho[20]

};

union u {

struct ng date;

struct diachi address;

} diachi_ngaysinh;

Kích thước của biến u là bao nhiêu byte?

A.

20.

B.

22.

C.

28.

D.
Đáp án khác.
Trả lời:

Đáp án đúng: B


Để tìm kích thước của union `u`, ta cần xem xét kích thước của các thành viên của nó và chọn kích thước lớn nhất. - `struct ng` chứa ba biến `unsigned`: `ngay`, `thang`, và `nam`. Giả sử `unsigned` chiếm 4 byte, thì kích thước của `struct ng` là 4 + 4 + 4 = 12 byte. - `struct diachi` chứa một biến `int` là `sonha` và một mảng `char` là `tenpho[20]`. Giả sử `int` chiếm 4 byte và `char` chiếm 1 byte, thì kích thước của `struct diachi` là 4 + 20 = 24 byte. Union `u` sẽ có kích thước bằng kích thước lớn nhất của các thành viên của nó, tức là max(12, 24) = 24 byte. Như vậy, không có đáp án nào đúng trong các lựa chọn đã cho.

Câu hỏi liên quan