Najjednostavnije definisano; niz je niz promenjivih istog tipa koji se nalaze u memoriji. Možemo reći i da je niz kolekcija elemenata ili lokacija za smeštanje podataka istog tipa. Inače niz predstavlja proizvoljno veliku količinu podataka indeksiranih sa brojevima. Sa malo koda vi u suštini pravite strukture nizova podataka proizvoljnih dimenzija, zatim pomoću petlji možete efikasno da obrađujete strukture podataka. Nizovi skoro uvek idu zajedno sa petljama i zbog toga su veoma korisni. Međutim nizovi u C++ programskom jeziku nisu baš kao u C# programskom jeziku jer su nizovi u C# objekti i moraju se instancirati što nije slučaj u C++ programskom jeziku. C++ programski jezik nije garbage collected i upotreba ključne reči new zahteva ručno oslobađanje memorije. Ali sad da ne komplikujem nego da pojednostavimo.
( Arrays, jednodimenzionalni i dvodimenzionalni nizovi )
tip ime_niza [veličina];
Takođe o nizovima treba da znate da u niz možete smestiti i stringove i objekte i druge nizove ali u svakom nizu može da postoji samo isti tipovi podataka. Npr. Ovako se definiše niz koji sadrži 10 promenjivih tipa integer.
int numbers[10];
Sad u niz numbers možete staviti 10 brojeva tipa integer umesto da pravite 10 promenjivih:
numbers[0]
= 1;
numbers[1]
= 2;
numbers[2]
= 3;
numbers[3]
= 4;
numbers[4]
= 5;
numbers[5]
= 6;
numbers[6]
= 7;
numbers[7]
= 8;
numbers[8]
= 9;
numbers[9] = 10;
Međutim ovako dodeljivanje nema neke velike razlike u pisanju 10 promenjivih tipa integer sa dodeljenim vrednostima. Zato isti niz možemo napisati, deklarisati i dodeliti nizu vrednosti jednostavnije; u jednoj liniji koda pomoću agregata jednostavnom notacijom vitičasti zagrada i tačka zarezom.
int numbers[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Ovako u jednoj liniji koda vi vršite i pravilno inicijalizaciju. Inače bez inicijalizacije niza vaš program vam može praviti komplikacije; ukoliko niste deklarisani niz na globalnom nivou. C++ programski jezik na žalost automatski inicijalizuje promenjive i sve elemente niza nulom samo na globalnom nivou. Što u prevodu znači da promenjive i svi elementi deklarisani na lokalnom nivou sadrže slučajne vrednosti (smeće). Ovako kompajler može da obradi vaš niz kao da to nije ni bitno ali može i da vam napravi ogromne komplikacije.
Kako
to misliš, da mogu imati komplikacije kad deklarišem niz bez inicijalizacije?