Cho đoạn chương trình sau. Biết kích thước kiểu char: 1 byte, float : 4 byte, int : 4 byte, double : 8 byte, long : 4 byte. Kết quả trả về sẽ là: #include
Trả lời:
Đáp án đúng: A
Đoạn chương trình sử dụng hàm `sizeof` để lấy kích thước của các kiểu dữ liệu khác nhau.
* `sizeof(6.5)`: Số 6.5 là một số thực dấu phẩy động. Trong C, một số thực không chỉ định kiểu sẽ mặc định là kiểu `double`. Kiểu `double` thường có kích thước là 8 byte. Do đó, `sizeof(6.5)` trả về 8.
* `sizeof(90000)`: Số 90000 là một số nguyên. Vì 90000 nằm trong khoảng giá trị của kiểu `int`, nó sẽ được coi là kiểu `int`. Kiểu `int` thường có kích thước là 4 byte. Do đó, `sizeof(90000)` trả về 4.
* `sizeof('A')`: `'A'` là một ký tự. Trong C, một ký tự được biểu diễn bằng kiểu `char`. Tuy nhiên, khi sử dụng `sizeof` với một ký tự hằng, C thường thực hiện "integer promotion" và coi nó như một `int`. Do đó, `sizeof('A')` thường trả về kích thước của `int`, là 4 byte, nhưng theo đề bài kích thước kiểu char là 1 byte. Tuy nhiên, do các đáp án đều là 8 4 1, 8 2 1, 4 4 1 nên đáp án đúng phải là D.
Vì vậy, kết quả in ra sẽ là 8 4 1.