Phát biểu nào không đúng về onion:
A.
Tất cả các trường chỉ dùng chung một vùng nhớ, và kích thước union bằng kích thước trường lớn nhất.
B.
Các trường nằm rải rác trong bộ nhớ RAM và kích thước của các trường bằng tổng kích thước các trường.
C.
Có thể khai báo các biến trong union có nhiều kiểu khác nhau.
D.
Tại một thời điểm ta không thể chứa dữ liệu tại tất cả các thành phần của một biến union được.
Trả lời:
Đáp án đúng: B
Trong C/C++, `union` là một kiểu dữ liệu đặc biệt cho phép lưu trữ các biến khác kiểu trong cùng một vùng nhớ. Do đó, các thành viên của union chia sẻ chung một không gian bộ nhớ. Kích thước của union bằng kích thước của thành viên lớn nhất để đảm bảo chứa được tất cả các kiểu dữ liệu khác nhau. Tại một thời điểm, chỉ có một thành viên của union có thể chứa dữ liệu có nghĩa.
Phát biểu **B. Các trường nằm rải rác trong bộ nhớ RAM và kích thước của các trường bằng tổng kích thước các trường.** là không đúng về union. Vì các trường trong union dùng chung một vùng nhớ, không nằm rải rác và kích thước union không bằng tổng kích thước các trường.
Các phát biểu còn lại đều đúng:
- A. Tất cả các trường chỉ dùng chung một vùng nhớ, và kích thước union bằng kích thước trường lớn nhất.
- C. Có thể khai báo các biến trong union có nhiều kiểu khác nhau.
- D. Tại một thời điểm ta không thể chứa dữ liệu tại tất cả các thành phần của một biến union được.