JavaScript is required

What is output? #include #include void main() { char arr[8]={'V','I','E','T','N','A','M'}; char *p; p=(char *)(arr+2)[2] printf("%c", p); getch(); }

A.

I

B.

E

C.

M

D.

N

Trả lời:

Đáp án đúng: D


Đề bài cho một mảng ký tự `arr` chứa chuỗi 'VIETNAM'. Sau đó, một con trỏ `p` kiểu `char` được gán bằng `(char *)(arr+2)[2]`. Biểu thức `arr + 2` sẽ trỏ đến phần tử thứ 3 của mảng `arr` (chỉ số bắt đầu từ 0), tức là `arr[2]` có giá trị là 'E'. Tiếp theo, `(arr+2)[2]` tương đương với `arr[2+2]` hay `arr[4]`, có giá trị là 'N'. Cuối cùng, con trỏ `p` sẽ trỏ đến địa chỉ của `arr[4]`. Khi in giá trị mà `p` đang trỏ tới bằng `printf("%c", p)`, chương trình sẽ in ra ký tự 'N'.

Câu hỏi liên quan