Chcę tylko upewnić się, że różnica między * a [5] i (* a) [5] w języku C.Jaka jest różnica między definiowaniem char a [5] a char (* a) [5]?
Wiem, że * a [5] oznacza, że tablica a może mieć pięć elementów, a każdy element jest wskaźnikiem. , więc,
char *p = "ptr1";
char *p2 = "ptr2";
char *a[5] = { p , p2 };
Ma sens.
Ale kiedy zmieniłem *a[5]
na (*a)[5]
, to nie działa.
char (*a)[5] = { p , p2};
Co dokładnie oznacza (*a)[5]
?
Ponadto
jest jakaś różnica między *a[5]
i a[5][]
i (*a)[5]
i a[][5]
?
należy zauważyć, że PO nie napisał drugiego oświadczenia jako deklaracji, ale jako zlecenie. – user2485710
@ user2485710 tak, myślę, że chciał. W mojej opinii ma to więcej sensu. Tak czy inaczej, amir otrzymał już odpowiedź na drugą sprawę. –