What is output? void main() { int x = 5,y = 6; int* const p = &x p = &y printf("%d", (*p)); getch(); }
Trả lời:
Đáp án đúng: A
Đoạn code C/C++ này có lỗi biên dịch. Lý do là biến `p` được khai báo là một con trỏ hằng (int* const p). Điều này có nghĩa là bản thân con trỏ `p` là hằng số, và nó phải luôn luôn trỏ đến cùng một địa chỉ bộ nhớ sau khi được khởi tạo. Trong code, `p` được khởi tạo để trỏ đến địa chỉ của `x`, sau đó chúng ta cố gắng gán `p` để trỏ đến địa chỉ của `y`. Vì `p` là hằng số, việc gán này là không hợp lệ và trình biên dịch sẽ báo lỗi.
Vì vậy, đáp án đúng là "A. Complier error".