What does the following declaration mean? int (*ptr)[10]
Trả lời:
Đáp án đúng: A
Khai báo `int (*ptr)[10]` có nghĩa là `ptr` là một con trỏ trỏ đến một mảng gồm 10 số nguyên.
Giải thích chi tiết:
* `int`: Kiểu dữ liệu của các phần tử trong mảng (số nguyên).
* `[10]`: Chỉ ra rằng đây là một mảng có 10 phần tử.
* `(*ptr)`: `ptr` là một con trỏ. Dấu `()` rất quan trọng vì nó chỉ ra rằng `ptr` là một con trỏ *trỏ đến* một mảng, chứ không phải là một mảng các con trỏ. Nếu không có dấu ngoặc đơn, `int *ptr[10]` sẽ có nghĩa là "`ptr` là một mảng gồm 10 con trỏ đến số nguyên".
Vậy, `ptr` lưu trữ địa chỉ của một mảng có 10 phần tử kiểu `int`.
Các phương án khác không đúng vì:
* A: `ptr` không phải là một mảng, mà là một con trỏ.
* C: `ptr` không phải là một mảng, mà là một con trỏ trỏ đến mảng.
* D: Thiếu thông tin về kích thước của mảng và kiểu dữ liệu của các phần tử trong mảng.