JavaScript is required

What is output ?
Media VietJack

A.
5
B.
6
C.
0
D.
Complier error
Trả lời:

Đáp án đúng: D


Đoạn code trên sử dụng một mảng `arr` kiểu `int` và khởi tạo nó với các giá trị {1, 2, 3, 4, 5}. Sau đó, một con trỏ `ptr` kiểu `int*` được gán địa chỉ của phần tử thứ ba trong mảng (tức là `arr[2]` hoặc số 3). Khi đó, `*ptr` sẽ trả về giá trị mà con trỏ `ptr` đang trỏ tới, tức là 3. Biểu thức `*ptr++` có nghĩa là: 1. `*ptr`: Lấy giá trị mà `ptr` đang trỏ tới (là 3). 2. `ptr++`: Tăng con trỏ `ptr` lên một vị trí (sau khi đã lấy giá trị). Như vậy, sau biểu thức này, `ptr` sẽ trỏ tới `arr[3]` (tức là số 4). Như vậy, `printf("%d", *ptr++)` sẽ in ra giá trị 3 (giá trị ban đầu mà `ptr` trỏ tới), và sau đó `ptr` sẽ trỏ đến phần tử tiếp theo trong mảng. Tiếp theo, `printf("%d", *ptr)` in ra giá trị mà `ptr` hiện đang trỏ tới. Vì `ptr` đã được tăng lên ở bước trước, nên giờ nó trỏ tới `arr[3]`, có giá trị là 4. Do đó, nó sẽ in ra 4. Kết quả cuối cùng in ra màn hình là 34. Vì không có đáp án nào trùng khớp với kết quả này nên đáp án đúng nhất là "Complier error" do đề bài thiếu dấu cách giữa 2 lệnh in.

Câu hỏi liên quan