108 ROZDZIAŁ 16. TABLICE Tablice wielowymiarowe Rysunek 16.2: tablica dwuwymia- rowa (5x5) Rozważmy teraz konieczność przechowania w pamięci komputera całej macierzy o wymiarach 10 x 10. Można by tego dokonać tworząc 10 osob- nych tablic jednowymiarowych, reprezentujących poszczególne wiersze macierzy. Jednak język C dostarcza nam dużo wygodniejszej metody, któ- ra w dodatku jest bardzo łatwa w użyciu. Są to tablice wielowymiarowe , lub inaczej “tablice tablic”. Tablice wielowymiarowe definiujemy po- dając przy zmiennej kilka wymiarów, np.: float macierz[10][10]; Tak samo wygląda dostęp do poszczególnych elementów tablicy: macierz[2][3] = 1.2; Jak widać ten sposób jest dużo wygodniejszy (i zapewne dużo bardziej “naturalny”) niż dekla- rowanie 10 osobnych tablic jednowymiarowych. Aby zainicjować tablicę wielowymiarową należy zastosować zagłębianie klamer, np.: float macierz[3][4] = { { 1.6, 4.5, 2.4, 5.6 }, /* pierwszy wiersz */ { 5.7, 4.3, 3.6, 4.3 }, /* drugi wiersz */ { 8.8, 7.5, 4.3, 8.6 } /* trzeci wiersz */ }; Dodatkowo, pierwszego wymiaru nie musimy określać (podobnie jak dla tablic jed- nowymiarowych) i wówczas kompilator sam ustali odpowiednią wielkość, np.: float macierz[][4] = { { 1.6, 4.5, 2.4, 5.6 }, /* pierwszy wiersz */ { 5.7, 4.3, 3.6, 4.3 }, /* drugi wiersz */ { 8.8, 7.5, 4.3, 8.6 }, /* trzeci wiersz */ { 6.3, 2.7, 5.7, 2.7 }, /* czwarty wiersz */ }; Innym, bardziej elastycznym sposobem deklarowania tablic wielowymiarowych jest użycie wskaźników. Opisane to zostało w następnym rozdziale. Ograniczenia tablic Pomimo swej wygody tablice majÄ
ograniczony, z góry zdeï¬niowany rozmiar, któ- rego nie można zmieniÄ w trakcie dziaÅania programu. Dlatego też w niektórych za- stosowaniach tablice zostaÅy wyparte przez dynamicznÄ
alokacjÄ pamiÄci. Opisane to zostaÅo w nastÄpnym rozdziale.
... zobacz całą notatkę
Komentarze użytkowników (0)