Увод¶
Шта ћеш научити?
како је организована меморија рачунара
шта су показивачи, како се дефинишу и где се примењују
како се користе показивачке променљиве
шта је показивачка аритметика и како се примењује
шта је динамичка алокација (заузимање) меморије и које се функције том приликом користе
која је разлика између статичке и динамичке декларације низа
Вероватно си се некада запитао како изгледа део рачунара у коме су смештени сви ти подаци са твог рачунара, а који називамо меморија рачунара. Неко меморију замишља као зграду са становима од којих сваки има свој број, неко замишља као фиоке огромног ормара, а у које можемо сместити податке. Начини визуализације су лични и различити, али заједничко је да меморију замишљамо као простор у коме по одређеном правилу смештамо неке податке и у коме свака од тих мањих јединица, станова, фиока има свој број, односно адресу.
Као што је нашем поштару лако да нас пронађе и да писмо или рачун убаци у сандуче са одговарајућим бројем, тако је и програму лако да пронађе податке баш тамо где су смештени, управо јер постоји неки ред приликом складиштења података. Брзина приступа овим подацима зависи од брзине рачунара, односно његовог процесора, али то ћеш детаљно изучавати из предмета који се баве пре свега хардвером рачунара.
Ако си стигао до области Показивачи, значи да имаш неко предзнање и да желиш озбиљно да се бавиш програмирањем. У том случају треба да користимо и стручну терминологију. Знаш да постоје различите врсте меморија, а са програмерске тачке је најбитнија подела на главну или оперативну и спољну меморију рачунара. Учећи програмирање, често ћеш се сретати са техникама складиштења података попут стек (stack) или хеп (heap) меморије, али и са много тога још.
Подсетимо се!
Ево неких наредби и термина које си већ научио у првом разреду, а које ћемо користити у овом курсу:
Тип података који се користи у програму одређен је следећим особинама:
скупом вредности које променљива или константа може узимати,
начином представљања у меморији,
скупом операција које се на њима могу извршавати.
Типови података у језику С се могу поделити на основне (неструктурне) и изведене (структурне). У изведене типове података спадају низови, показивачи, стрингови (знаковни низови), структуре и уније.
sizeof(tip_ promenljive)
– враћа величину меморије коју заузима операнд изражену
у бајтовима;
Изрази sizeof(int)
и sizeof(float)
даће вредност 4, sizeof(double)
8, sizeof(char)
вратиће вредност 1
%d
– конверзија за представљање декадне целобројне вредности
%x
– конверзија за представљање хексадекадне вредности