wskaźniki i tablice wielowymiarowe [duplikaty]
Możliwy duplikat:
Jak używać tablic w C ++?
Czy tablica 2d jest podwójnym wskaźnikiem?
Dwuwymiarowe tablice i wskaźniki
Wiem, że jest to bardzo podstawowe pytanie, ale żadna ilość googli nie wyjaśniła mi tego. Dlatego zamieszczam to tutaj. W c ++ rozważ deklaracjęint x[10];
Jest to tablica 1-wymiarowa z x będącym wskaźnikiem bazowym, który zawiera adres pierwszego elementu tablicy. Więcx
daje mi ten adres i*x
daje pierwszy element.
podobnie w przypadku deklaracji
int x[10][20];
jaka jest zmiennax
tutaj. Kiedy robię
int **z = x;
kompilator mówi, że nie może konwertowaćint (*)[20]
doint **
.A dlaczegocout<<x;
icout<<*x;
podać tę samą wartość? A także jeśli zadeklaruję tablicę wskaźników jako
int *p[10];
wtedy jest różnica międzyx
ip
(w ich typach) ?? ponieważ kiedy się deklarujeint x[10]
iint *p
wtedy ważne jest przypisaniex
dop
ale tak nie jest w przypadku tablic dwuwymiarowych? czemu? Czy ktoś mógłby mi to wyczyścić lub dostarczyć dobrego materiału na ten temat.