JavaScript is required

Cho đoạn chương trình. Kích thước của biến u là bao nhiêu byte: 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;

A.

20

B.

22

C.

28

D.

Đáp án khác

Trả lời:

Đáp án đúng: B


Trong đoạn chương trình C, union u chứa hai thành viên: struct ng datestruct diachi address. Kích thước của union sẽ bằng kích thước của thành viên lớn nhất trong nó.

\n

- struct ng date chứa ba trường unsigned ngay, unsigned thang, và unsigned nam. Giả sử unsigned chiếm 4 bytes, vậy kích thước của struct ng là 4 * 3 = 12 bytes.

\n

- struct diachi address chứa một trường int sonha và một mảng char tenpho[20]. Giả sử int chiếm 4 bytes và char chiếm 1 byte, vậy kích thước của struct diachi là 4 + 20 * 1 = 24 bytes.

\n

Do đó, kích thước của union u sẽ bằng kích thước của struct diachi, tức là 24 bytes. Vì không có đáp án nào đúng nên ta chọn đáp án D.

Câu hỏi liên quan