uczę o wskaźniki:Wskaźniki do tablic 2D C, C++
int x[10];
int *p = &x
byłoby to zrobić typ wskaźnika int
do pierwszego elementu. Tak więc, gdybym miał tablicę 2D, potrzebowałbym użyć podwójnego wskaźnika: pierwszy wskaźnik wskazywałby na drugi wymiar tablicy. To znaczy:
int x[3][4] = {{1,2,3,4},{5,6,7,8},{9,9,9,9}};
i kiedy chcę wskazać to, muszę zadeklarować rozmiar drugiego wymiaru w ten sposób, prawda?
int *p[4] = x;
lub istnieje inny sposób, wpisując: int **p
; ?
i int *p[4]
to tablica liczb całkowitych, która zajmuje 4 * (sizeof(int*))
, prawda?
Pomyślnie: staraj się unikać wskaźników w C++. Użyj 'std :: vector' lub' std :: array' zamiast macierzy w stylu C. – xtofl
"_'int * p [4]' jest tablicą wskaźników całkowitych, która przyjmuje "4 * (sizeof (int *))", right? _ "- Yes. I ** zawsze ** kompiluje się z włączonymi ostrzeżeniami ('-Wall -Wextra'). Gdy skompilujesz kod, zauważysz ostrzeżenia o niekompatybilnych wskaźnikach. W ten sposób da ci wskazówkę, że coś jest nie tak. –
dobrze .. mingw32-g ++. Exe -o ............................ Proces zakończony ze stanem 0 (0 minut, 0 sekund) 0 błędów, 0 ostrzeżeń (0 minut, 0 sekund) i: int x [3] [4] = {{1,2,3,4}, {5,6,7,8 }, {9,987,9,9}}; int (* p) [4] = x; printf ("% d", p [2] [1]); printf ("\ n rozmiar z * p jest:% d \ n", sizeof (p)); ------------------------------------------------- ------------- output: rozmiar * p to: 4 –