JavaScript is required

What will be output of the program?
Media VietJack

A.
4 4
B.
3 4
C.
2 2
D.
2 3
Trả lời:

Đáp án đúng: A


Đoạn code C++ sử dụng con trỏ và vòng lặp để thay đổi giá trị của các biến. Ta cùng phân tích: 1. **`int a[] = {1, 2, 3};`**: Khai báo một mảng `a` gồm 3 phần tử có giá trị lần lượt là 1, 2, 3. 2. **`int *p = a;`**: Khai báo một con trỏ `p` kiểu `int` và gán địa chỉ của phần tử đầu tiên của mảng `a` cho `p`. Vậy `p` đang trỏ tới `a[0]` (giá trị 1). 3. **`*(p++) = 2;`**: - `*(p)`: Truy cập giá trị mà con trỏ `p` đang trỏ tới (ban đầu là `a[0]`). - `*(p++) = 2;`: Gán giá trị 2 cho `a[0]`. Sau đó, `p++` tăng con trỏ `p` lên một vị trí, bây giờ `p` trỏ tới `a[1]`. 4. **`*(p++) = *a;`**: - `*a`: Lấy giá trị của phần tử đầu tiên trong mảng a (tức là `a[0]`, mà bây giờ `a[0]` có giá trị là 2). - `*(p++) = *a;`: Gán giá trị 2 (giá trị của `a[0]`) cho `a[1]`. Sau đó, `p++` tăng con trỏ `p` lên một vị trí, bây giờ `p` trỏ tới `a[2]`. 5. **`cout << a[1] << " " << *p;`**: - `a[1]`: In ra giá trị của phần tử thứ hai của mảng `a` (tức là `a[1]`, có giá trị là 2). - `*p`: In ra giá trị mà con trỏ `p` đang trỏ tới (tức là `a[2]`, có giá trị ban đầu là 3, không bị thay đổi). Vậy kết quả in ra là `2 3`.

Câu hỏi liên quan