ne. niz nemozes deklarirat kao a[], zato sto kompajer nezna koliko ima elemenata u nizu. a[] mozeskoristit kao ulazni element funkcije, npr.
Code:
void ispisi(int a[], int broj_elemenata);
kad ti treba funkcija koja ce radit s poljem integera s bilo koliko elemenata, a prosljedis broj elemenata u funkciju kao drugu varijablu.
a[100] deklarira polje integera od 100 elemenata. ti elementi su u memoriji jedan iza drugog. znaci, ti zauzimas memoriju od 400 byteova za tvoj niz (int = 4 bytea). ovo je efikasno ako imas polje koje ima fiksno 100 elemenata u tvom programu. dakle nije dobro ako ti treba vise ili manje od 100 elemenata u polju. ako ti treba vise, nemozes nikako redimenzionirati ovo polje, a ako ti treba manje, imas bezveze zauzetu memoriju.
*a deklarira pokazivac na neki tip podataka(recimo int). dinamicka polja (tj. ona kojima se moze mjenjati velicina) se izradjuju na ovaj nacin. dakle, jedan pointer na tip integera pokazuje na neku memorijsku adresu gdje se nalazi jedan integer. polje se realizira ovako
Code:
int *a, brojelemenata = 5;
a = (int *)malloc(sizeof(int) * brojelemenata);
a[4] = 2; [i]//isto koristis kao i normalno polje[/i]