Showing posts with label initializing. Show all posts
Showing posts with label initializing. Show all posts

Monday, October 05, 2015

Nizovi u C++ programskom jeziku


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 )

Nizovi se deklarišu prvo određivanjem tipa niza, zatim imenom niza i veličinom. Najjednostavnija sintaksa niza je:

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?