Pokazivači su bitan aspekt C programiranja koji ćete trebati dobro razumjeti da biste učinkovito koristili jezik. Pomažu u učinkovitom upravljanju memorijom, prosljeđivanju podataka po referenci, rukovanju nizovima i nizovima itd. Međutim, zahtijevaju pažljivu upotrebu kako bi se izbjegle pogreške.
MUO Video dana POMICI SE ZA NASTAVAK SA SADRŽAJEM
Istražite detalje C pokazivača, od razumijevanja memorije i adresa do svladavanja aritmetike pokazivača.
Memorija i adrese
Memorija—često se koristi kao skraćenica za RAM (Memorija s izravnim pristupom) —je prostor za pohranu u računalu koji sadrži podatke i upute koje program treba pokrenuti. Služi kao radni prostor za vaš program. Najmanja jedinica memorije obično je bajt, koji je jednak osam bitova.
Svaka memorijska lokacija ima jedinstvenu adresu i može pohraniti različitu količinu podataka ovisno o računalu. Kada deklarirate varijablu u C-u, implicitno joj dodjeljujete memorijsku lokaciju za pohranjivanje podataka. Zamislite to kao kuću koja ima jedinstvenu adresu koju možete koristiti da je locirate.
Zamislite memoriju vašeg računala kao niz ćelija za pohranu, od kojih svaka sadrži bajt podataka. Recimo da postoje dvije varijable, x i i , u C programu:
int x = 5;
int y = 10;
U memoriji bi to moglo izgledati ovako:
1000 | 5 |
1004 | 10 kako oporaviti stari facebook račun |
Ovdje odvojene memorijske lokacije pohranjuju ove varijable. Podaci koji x predstavlja nalazi se na memorijskoj adresi 1000, dok i podaci zauzimaju memorijsku adresu 1004.
Razumijevanje memorije i adresa ključno je kada radite s pokazivačima jer su to varijable koje pohranjuju memorijske adrese. Omogućuju vam pristup i manipuliranje podacima pohranjenim na određenom memorijskom mjestu.
Deklariranje i inicijaliziranje pokazivača u C-u
Prije nego što možete modificirati podatke pomoću pokazivača u C-u, morate ih deklarirati i inicijalizirati.
deklaracija
Da biste deklarirali pokazivač, navedite tip podataka na koji pokazuje, nakon čega slijedi zvjezdica (*), a zatim naziv pokazivača. Na primjer:
int *ptr;
Ovdje, int *ptr deklarira pokazivač nazvan ptr koji može pohraniti memorijsku adresu cijelog broja.
Inicijalizacija
Nakon deklaracije, trebali biste ga inicijalizirati s memorijskom adresom na koju će ukazivati. Možete ga inicijalizirati ovako:
int x = 5;
int *ptr = &x;
U ovoj deklaraciji, i operator dohvaća adresu x varijable. Kod u biti kaže da je 'ptr varijabla, pohranjuje memorijsku lokaciju cjelobrojne vrijednosti, a ta je lokacija gdje god se x trenutno odnosi.'
Sada, ptr sadrži adresu cjelobrojne varijable x . Na primjer:
x | 1000 | 5 |
ptr | ---- | 1000 |