Cho đoạn mã sau. Phát biểu nào sau đây đúng với đoạn mã trên?
short s = 9;
int i = 10;
i = s;
short s = 9;
int i = 10;
i = s;
int i = 10;
i = s;
Trả lời:
Đáp án đúng: D
Trong đoạn mã trên, một biến `short` (s) được gán giá trị 9, sau đó một biến `int` (i) được gán giá trị 10. Cuối cùng, biến `i` (kiểu `int`) được gán giá trị của biến `s` (kiểu `short`).
Vì `int` có kích thước lớn hơn `short`, việc gán giá trị từ `short` sang `int` là một widening conversion (chuyển đổi mở rộng) và hoàn toàn hợp lệ trong hầu hết các ngôn ngữ lập trình (ví dụ: Java, C#). Không có lỗi biên dịch, không có lỗi thực thi và không có mất độ chính xác vì mọi giá trị có thể biểu diễn bằng kiểu `short` đều có thể biểu diễn bằng kiểu `int`.
Do đó, đáp án đúng là "Không có lỗi".





