JavaScript is required

Anh (Chị) hãy cho biết kết quả của đoạn lệnh sau là gì?

int val1, val2; int * pointer;

pointer = &val1 *pointer = 10; pointer = &val2

*pointer = 20; cout << val1

* val2 << endl;

A.

10 * 20

B.

200

C.

20

D.

Chương trình báo lỗi.

Trả lời:

Đáp án đúng: B


Đoạn code trên thực hiện các bước sau: 1. **`int val1, val2;`**: Khai báo hai biến nguyên `val1` và `val2`. Cả hai biến này chưa được khởi tạo giá trị. 2. **`int *pointer;`**: Khai báo một con trỏ `pointer` trỏ đến một biến kiểu `int`. 3. **`pointer = &val1;`**: Gán địa chỉ của biến `val1` cho con trỏ `pointer`. Bây giờ `pointer` đang trỏ đến `val1`. 4. **`*pointer = 10;`**: Gán giá trị 10 cho vùng nhớ mà `pointer` đang trỏ tới. Vì `pointer` trỏ tới `val1`, nên `val1` bây giờ có giá trị là 10. 5. **`pointer = &val2;`**: Gán địa chỉ của biến `val2` cho con trỏ `pointer`. Bây giờ `pointer` đang trỏ đến `val2`. 6. **`*pointer = 20;`**: Gán giá trị 20 cho vùng nhớ mà `pointer` đang trỏ tới. Vì `pointer` trỏ tới `val2`, nên `val2` bây giờ có giá trị là 20. 7. **`cout << val1 * val2 << endl;`**: In ra tích của `val1` và `val2` (`10 * 20 = 200`) ra màn hình. Vậy kết quả của đoạn code là 200.

Câu hỏi liên quan