JavaScript is required

Phát biểu nào không đúng về union?

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: C


Câu hỏi yêu cầu tìm phát biểu **không** đúng về `union` trong C/C++. * **Đáp án A:** Đúng. Đặc điểm cốt lõi của `union` là tất cả các thành viên (trường) của nó chia sẻ cùng một vùng 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 đủ không gian chứa bất kỳ thành viên nào. * **Đáp án B:** Sai. Đây là phát biểu mô tả về `struct`, không phải `union`. Trong `struct`, các trường nằm ở các vị trí khác nhau trong bộ nhớ, và kích thước của `struct` thường là tổng kích thước các trường (có thể thêm padding). * **Đáp án C:** Đúng. `union` cho phép các thành viên có kiểu dữ liệu khác nhau. Điều này cho phép bạn lưu trữ các kiểu dữ liệu khác nhau tại cùng một vị trí bộ nhớ, tùy thuộc vào nhu cầu của chương trình. * **Đáp án D:** Đúng. Vì các thành viên của `union` dùng chung bộ nhớ, tại một thời điểm, bạn chỉ có thể lưu trữ giá trị cho một thành viên duy nhất. Việc gán giá trị cho một thành viên sẽ ghi đè lên giá trị của các thành viên khác. Vậy, đáp án **không** đúng là B.

Câu hỏi liên quan