214 Godzina 15
214 Godzina 15
Błąd słupków ogrodzeniowych
Taki sposób liczenia może być utrapieniem niejednego programisty. Jednak z czasem przyzwyczaisz się do tego, że 25 elementowa tablica jest indeksowana do 24, i że wszystko liczy się od 0. (Tak w ogóle to programiści są często bardzo zdziwieni, że np. nie buduje się budynków począwszy od piętra zerowego. Niektórzy z nich tak się przyzwyczaili do reguł C++, że gdy chcą wjechać na piąte piętro, to naciskają w windzie guzik z numerem 4).
Prostą tablicę standardowych wartości C++ można zainicjować już w momencie deklaracji. Po nazwie tablicy należy postawić znak przypisania ( = ), a następnie w klamrach podać wartości kolejnych elementów tablicy. Np.:
int Tablicalnt[5] = { 10, 20, 30, 40, 50 };
Tak wygląda przykładowa deklaracja i inicjalizacja pięcioelementowej tablicy liczb typu int. Elementowi TablicaInt[0] zostaje przypisana wartość 10, elementowi Tablicalnt[1] wartość 20 itd.
Jeśli nie określisz w deklaracji rozmiaru tablicy, to kompilator dopasuje go automatycznie na podstawie liczby wartości inicjalizujących. Jeśli napiszesz:
int Tablicalnt[] •= { 10, 20, 30, 40, 50 };
to otrzymasz dokładanie taką samą tablicę jak w poprzednim przykładzie.
Jeśli chcesz poznać liczbę elementów tablicy to możesz ją łatwo obliczyć:
const int RozmiarTablicylnt = sizeof (Tablicalnt) / sizeof(Tablicalnt[0]);
Ta instrukcja przypisuje zmienne RozmiarTablicylnt wartość powstałą z podzielenia rozmiaru, wyrażonego w bajtach, tablicy Tablicalnt przez rozmiar w bajtach elementu tej tablicy. Otrzymujemy w ten sposób liczbę elementów tablicy Tablicalnt.
Nie można inicjalizować tablicy większą liczbą wartości niż wynosi dopuszczalny rozmiar tej tablicy. Jeśli napiszesz:
int Tablicalnt[5] * { 10, 20, 30, 40, 50, 60 };
to kompilator zasygnalizuje błąd, ponieważ zadeklarowana tablica ma 5 elementów, a ty próbujesz do niej wstawić 6 elementów. Jednak wolno Ci napisać tak:
int Tablicalnt[5] = { 10, 20 );
Im 2m 3m 5m 6m 7m 9m 10m
Błąd słupków ogrodzeniowych
Taki sposób liczenia może być utrapieniem niejednego programisty. Jednak z czasem przyzwyczaisz się do tego, że 25 elementowa tablica jest indeksowana do 24, i że wszystko liczy się od 0. (Tak w ogóle to programiści są często bardzo zdziwieni, że np. nie buduje się budynków począwszy od piętra zerowego. Niektórzy z nich tak się przyzwyczaili do reguł C++, że gdy chcą wjechać na piąte piętro, to naciskają w windzie guzik z numerem 4).
Prostą tablicę standardowych wartości C++ można zainicjować już w momencie deklaracji. Po nazwie tablicy należy postawić znak przypisania ( = ), a następnie w klamrach podać wartości kolejnych elementów tablicy. Np.:
int Tablicalnt[5] = ( 10, 20, 30, 40, 50 };
Tak wygląda przykładowa deklaracja i inicjalizacja pięcioelementowej tablicy liczb typu int. Elementowi Tablicalnt[0] zostaje przypisana wartość 10, elementowi Tablicalnt[l] wartość 20 itd.
Jeśli nie określisz w deklaracji rozmiaru tablicy, to kompilator dopasuje go automatycznie na podstawie liczby wartości inicjalizujących. Jeśli napiszesz:
int Tablicalnt[] = { 10, 20, 30, 40, 50 };
to otrzy masz dokładanie taką samą tablicę jak w poprzednim przykładzie.
Jeśli chcesz poznać liczbę elementów tablicy to możesz ją łatwo obliczyć:
const int RozmiarTablicylnt = sizeof(Tablicalnt) / sizeof(Tablicalnt(0]);
Ta instrukcja przypisuje zmienne RozmiarTablicylnt wartość powstałą z podzielenia rozmiaru, wyrażonego w bajtach, tablicy Tablicalnt przez rozmiar w bajtach elementu tej tablicy. Otrzymujemy w ten sposób liczbę elementów tablicy Tablicalnt.
Nie można inicjalizować tablicy większą liczbą wartości niż wynosi dopuszczalny rozmiar tej tablicy. Jeśli napiszesz:
int Tablicalnt(5] = { 10, 20, 30, 40, 50, 60 };
to kompilator zasygnalizuje błąd, ponieważ zadeklarowana tablica ma 5 elementów, a ty próbujesz do niej wstawić 6 elementów. Jednak wolno Ci napisać tak:
int Tablicalnt[5] = ( 10, 20 );
O ile nieinicjalizowane tablice mają wartości nieokreślone, o tyle w tym przypadku,
wszystkie niezainicjalizowane elementy zostaną wyzerowane.