JavaScript is required

What is output?
Media VietJack

A.
A
B.
B
C.
ABC
Trả lời:

Đáp án đúng: C


Đề bài yêu cầu xác định output của đoạn code C++ cho trước. Đoạn code này sử dụng con trỏ và cấp phát bộ nhớ động. Phân tích code: - `int *p = new int[3];` cấp phát một mảng 3 số nguyên và gán địa chỉ cho con trỏ `p`. - `p[0] = 10; p[1] = 20; p[2] = 30;` gán giá trị cho các phần tử của mảng. - `int *q = p;` gán địa chỉ của `p` cho `q`. Lúc này, `p` và `q` cùng trỏ đến cùng một vùng nhớ. - `p = new int[5];` cấp phát một mảng 5 số nguyên *mới* và gán địa chỉ cho `p`. Vùng nhớ mà `p` trỏ đến trước đó (mảng 3 phần tử) bây giờ không còn được trỏ tới bởi `p` nữa, nhưng `q` vẫn trỏ đến vùng nhớ đó. - `p[0] = 1; p[1] = 2; p[2] = 3; p[3] = 4; p[4] = 5;` gán giá trị cho các phần tử của mảng *mới* mà `p` trỏ tới. - `cout << q[0] << q[1] << q[2];` in ra giá trị của các phần tử đầu tiên của mảng mà `q` trỏ tới. Vì `q` vẫn trỏ đến mảng ban đầu (3 phần tử), nên các giá trị được in ra là 10, 20 và 30. Vì vậy, output của chương trình là `102030`, tương ứng với đáp án C.

Câu hỏi liên quan