JavaScript is required

What is output? void main() { int x = 5, y = 8; const int* p; p = &x p = &y x++; printf("%d", *p); getch(); }

A.

5

B.

6

C.

8

D.

Complier Error

Trả lời:

Đáp án đúng: C


Đoạn mã C++ này minh họa việc sử dụng con trỏ `const int*`. - `int x = 5, y = 8;`: Khai báo hai biến `x` và `y` kiểu `int` và khởi tạo giá trị lần lượt là 5 và 8. - `const int* p;`: Khai báo một con trỏ `p` trỏ tới một biến kiểu `int` hằng số. Điều này có nghĩa là giá trị mà con trỏ `p` trỏ tới không thể thay đổi thông qua con trỏ `p`, nhưng giá trị của biến mà `p` trỏ tới có thể thay đổi trực tiếp thông qua tên biến của nó (ví dụ: `x++`). - `p = &x;`: Gán địa chỉ của biến `x` cho con trỏ `p`. Bây giờ `p` trỏ tới `x`. - `p = &y;`: Gán địa chỉ của biến `y` cho con trỏ `p`. Bây giờ `p` trỏ tới `y`. Việc gán này hoàn toàn hợp lệ vì `p` là con trỏ có thể trỏ tới các địa chỉ khác nhau, miễn là nó trỏ tới một `int` hằng số. - `x++;`: Tăng giá trị của biến `x` lên 1. Giá trị của `x` bây giờ là 6. Tuy nhiên, điều này không ảnh hưởng đến giá trị của `y` hoặc giá trị mà `p` đang trỏ tới (vì `p` đang trỏ tới `y`). - `printf("%d", *p);`: In giá trị mà con trỏ `p` đang trỏ tới. Vì `p` đang trỏ tới `y`, và giá trị của `y` là 8, nên chương trình sẽ in ra 8. - `getch();`: Hàm này được sử dụng để chờ một ký tự được nhập từ bàn phím trước khi chương trình kết thúc. (hàm này có thể không hoạt động nếu không có thư viện tương ứng) Vậy đáp án đúng là C. 8

Câu hỏi liên quan