Nizovi su složeni tip podataka koji se sastoji od više podataka istog tipa. Razmotrimo situaciju kada programer mora voditi evidenciju određenog broja ljudi unutar neke organizacije. Sve do sada, naš početni pokušaj bi bio stvoriti posebnu varijablu za svakog korisnika. To bi moglo ovako izgledati,
int name1 = 101; int name2 = 232; int name3 = 231;Naravno da postaje sve teže voditi evidenciju kako raste broj varijabli. Nizovi nude rješenje ovog problema.
Niz je poput kutije s više elemenata, slično arhivu, koji koristi princip indeksiranja da bi pronašao svaku varijablu koja je u njemu pohranjena. U C-u, indeksiranje počinje od nule.
Nizovi, poput drugih varijabli u C-u, moraju biti deklarirani prije nego što se mogu koristiti.
Zamjena gornjeg primjera uz pomoć nizova izgleda ovako,
int names[4]; names[0] = 101; names[1] = 232; names[2] = 231; names[3] = 0;Stvorili smo niz imena names, koji može sadržavati četiri integer varijable. Također možete vidjeti da smo na posljednjem mjestu niza pohranili nulu. Ovo je česta tehnika koju koriste C programeri da bi označili kraj niza.
Nizovi imaju slijedeću sintaksu, koriste uglate zagrade da bi pristupili svakoj pohranjenoj vrijednosti (zovemo je element).
x[i]Tako se x[5] odnosi na šesti element u nizu imena x. U C-u, elementi niza počinju od 0. Pridjeljivanje vrijednosti elementima niza se radi pomoću
x[10] = g;a pridjeljivanje elemenata niza vrijednosti pomoću
g = x[10];U slijedećem primjeru, deklariramo niz znakova word , i svakom elementu pridružujemo znak. Zadnji element niza je nula, da bi označili kraj stringa (u C-u, string nije tip podatka, tako se za rad sa stringovima koriste nizovi znakova). Printf funkcija se koristi za ispis elemenata niza.
/* Predstavljamo nizove, 2 */ #include <stdio.h> main() { char word[20]; word[0] = 'H'; word[1] = 'e'; word[2] = 'l'; word[3] = 'l'; word[4] = 'o'; word[5] = 0; printf("Sadržaj word[] je -->%s\n", word ); } Ispis programa Sadržaj word[] je Hello