Tôi chỉ muốn đảm bảo sự khác biệt giữa * a [5] và (* a) [5] trong ngôn ngữ C.sự khác biệt giữa việc xác định char a [5] và char (* a) [5] là gì?
Tôi biết rằng * a [5] có nghĩa là mảng có thể có năm phần tử và mỗi phần tử là con trỏ. như vậy,
char *p = "ptr1";
char *p2 = "ptr2";
char *a[5] = { p , p2 };
Điều đó có ý nghĩa.
Nhưng khi tôi thay đổi *a[5]
thành (*a)[5]
nó không hoạt động.
char (*a)[5] = { p , p2};
(*a)[5]
có nghĩa là gì?
Bên cạnh đó,
có bất kỳ sự khác biệt giữa *a[5]
và a[5][]
, và (*a)[5]
và a[][5]
?
lưu ý rằng OP không viết tuyên bố thứ 2 làm tuyên bố mà là một bài tập. – user2485710
@ user2485710 vâng, tôi nghĩ anh ấy có ý định mặc dù vậy. Nó có ý nghĩa hơn theo cách đó theo ý kiến của tôi. Dù sao, amir đã có một câu trả lời cho trường hợp khác. –