Professional Documents
Culture Documents
C++ Tipovi Podataka
C++ Tipovi Podataka
Svaki program koji neto radi, sadri podatke koje obrauje. Ti podaci mogu biti u obliku
varijabli i konstanti. Varijable mogu mijenjati svoju vrijednost, dok su konstante postojane u
toku izvoenja programa.
Svaku varijablu koju koristimo u programu moramo deklarirati. Deklaracija varijable moe se
nalaziti ispred funkcije main - u tom sluaju se radi o tzv. globalnoj varijabli, odnosno,
varijabli dostupnoj u svim dijelovima programa. Takoer varijablu moemo deklarirati i unutar
bilo koje funkcije u programu, tovie, varijable moemo deklarirati u svim dijelovima
programa (to je novina u C++ u odnosu na C).
Varijablu deklariramo tako da navedemo najprije njen tip, a zatim njen naziv :
<tip> <naziv>;
Primjer :
#include <iostream.h>
int globalna; // globalna varijabla tipa int (cjelobrojna)
void main () {
char lokalna='A'; // lokalna varijabla tipa char (znakovna)
globalna = 3;
for (int i=1;i<=10;i++){ // varijablu moemo deklarirati i ovdje
int b=7; // pa ak i ovdje
cout << i << endl;
}
}
Primjer :
Radnu memoriju raunala moemo promatrati kao dugaak niz jednostavnih podataka,
bajtova, od kojih svaki ima svoju adresu. Deklaracijom podatka (varijable ili konstante)
rezerviramo odreeni prostor u radnoj memoriji raunala, gdje e biti u binarnom obliku
smjetena vrijednost tog podatka. Veliina tog memorijskog prostora ovisi o tipu podatka,
dok nas stvarna fizika adresa u veini sluajeva ne zanima, odnosno, preputamo sustavu
za alokaciju memorije programa prevoditelja da je odredi.
Prema tome, deklarirane varijable i konstante moemo promatrati kao imenovane
memorijske prostore.
Primjer :
Prilikom ispisa podatka na standardnoj izlaznoj jedinici (odnosno, kod tzv. konzolnog izlaza)
dolazi do odgovarajue konverzije binarnog sadraja memorijskog prostora varijable u
odgovarajui niz znakova. Na primjer :
Tip konverzije podataka odreen je tipom podataka, a naelno govorimo o 5 osnovnih tipova
konverzije (A, X znakovne, I cjelobrojna, F konverzija brojeva u pokretnom zarezu i E
konverzija brojeva u eksponencijalnoj formi; vidi odgovarajua o ulazu i izlazu podataka).
Prilikom unosa podatka dolazi do obratne konverzije; niz znakova sa standardne ulazne
jedinice (tzv. konzolni ulaz) pretvara se u odgovarajui binarni sadraj, prema tipu podatka :
int e; char f;
cin >> e; // konverzija tipa I
cin >> f; // konverzija tipa A
Openito moemo rei da tipovi podataka odreuju veliinu memorijskog prostora i nain
rukovanja podacima.
5.2.2 Statiki skalarni tipovi podataka
Nabrojivi tip podataka omoguuje nam da sami definiramo mogue vrijednosti podataka. Za
deklaraciju nabrojivog tipa podataka (pobrojenja) koristimo kljunu rije enum :
Primjer:
deklarira tip podataka tdan. Varijable tipa tdan mogu sadravati jednu od navedenih
vrijednosti za dane u tjednu :
Za razliku od Pascala, u C++ logiki izrazi daju cjelobrojni rezultat, i to rezultat 0 koji
predstavlja logiku la, odnosno rezultat 1 koji predstavlja logiku istinu. Takoer, sve
vrijednosti razliite od nule tretiraju se kao logika istina.
Primjer :
Logiki tip podataka, bool, predstavlja pobrojenje s elementima false i true, nije podran od
svih C++ prevoditelja, a definira se ovako :
Primjer :
C++ radi s tzv. nul-terminiranim znakovnim nizovima, odnosno, kraj niza znakova oznaen je
znakom \0 (znak s ASCII kodom 0), pa je kod deklaracije potrebno o tome voditi rauna.
Niz (ARRAY)
Slogovi ukljuuju varijable razliitih naziva i tipova, koji se odnose na odreenu jedinicu
(entitet) promatranja.
Primjer :
struct t_glazbenik {
char prezime[20];
char ime [20];
int godina_r, godina_s;
char instrument [16];
};
t_glazbenik glazbenik;
glazbenik.godina_r =1742;
strcpy (glazbenik.prezime, Paganini);
<naziv_klase>.<naziv_datotenog objekta>
Primjer:
fstream dat;
C++ tretira datoteke kao objekte klase fstream, odnosno iz nje izvedenih klasa ifstream
(definira ulazne datoteke) i ofstream (izlazne datoteke).
Pokaziva je varijabla koja sadri adresu neke druge varijable ili funkcije. Tada tu
varijablu/funkciju nazivamo dinamikom. Deklaracija pokazivaa odreuje tip na koji
pokazuje i ima slijedei format :
tip_na_koji_pokazuje *ime_pokazivaca;
Primjer: