Основи програмирања 1

Like dokumenter
Oснови. програмирања 1 Лекција 10. др Зоран Бањац. Висока школа електротехнике и рачунарства струковних студија Београд.

Обојене Петријеве мреже

Преглед и промене XML-a шифарника који се користе при електронском фактурисању медицинско-техничких помагала верзија 1.0.2

РАЧУНАРСКА ТЕХНИКА ПРЕЗЕНТАЦИЈА ИЗБОРНИХ ПРЕДМЕТА ПРВЕ ГОДИНЕ ШКОЛСКA 2016/17. ГОДИНУ

ДВАДЕСЕТ ДРУГО РЕГИОНАЛНО ТАКМИЧЕЊЕ РЕШЕЊА ИЗ ОСНОВА ЕЛЕКТРОТЕХНИКЕ ЗА УЧЕНИКЕ ДРУГОГ РАЗРЕДА

Објектно орјентисано програмирање. Владимир Филиповић Александар Картељ

/ Свим понуђачима који су преузели конкурсну документацију за јавну набавку 14/2017

1. Која је најмања јединица за количину информација? а) Bit б) Byte в) Word г) Не знам. 2. Један бајт чини: а) 1 бит б) 8 битa в) 64 битa

Del 1 En oversikt over C-programmering

ДВАДЕСЕТ ТРЕЋЕ РЕПУБЛИЧКО ТАКМИЧЕЊЕ РЕШЕЊА ИЗ ОСНОВА ЕЛЕКТРОТЕХНИКЕ ЗА УЧЕНИКЕ ДРУГОГ РАЗРЕДА

Kapittel 1 En oversikt over C-språket

Радиан. Радиан мери угао Радиан се дефинише као дужина кружног лука s подељена са радиусом r s r

ДВАДЕСЕТ ТРЕЋЕ РЕГИОНАЛНО ТАКМИЧЕЊЕ РЕШЕЊА ИЗ ОСНОВА ЕЛЕКТРОТЕХНИКЕ ЗА УЧЕНИКЕ ДРУГОГ РАЗРЕДА

На основу члана 108. Закона о јавним набавкама директор Дома здравља Др Јован Јовановић Змај Стара Пазова, доноси следећу:

Криптологија Асиметрични шифарски системи ~ Дифи-Хелман ~

ДВАДЕСЕТТРЕЋЕ РЕГИОНАЛНО ТАКМИЧЕЊЕ РЕШЕЊА ИЗ ЕНЕРГЕТСКЕ ЕЛЕКТРОНИКЕ

(upublisert, april 2007) (необјављена песма, април 2007)

I. Дом здравља Др Милутин Ивковић Палилула

ДВАДЕСЕТПРВО РЕПУБЛИЧКО ТАКМИЧЕЊЕ ЗАДАЦИ ИЗ ОСНОВА ЕЛЕКТРОТЕХНИКЕ ЗА УЧЕНИКЕ ПРВОГ РАЗРЕДА

ЕЛЕКТРОНИКЕ ЗА УЧЕНИКЕ ТРЕЋЕГ РАЗРЕДА

Фонт представља сва слова азбуке или абецеде, као и бројеве.сваки фонт има своје име.

ЗАДАТАК ЗА ПРАКТИЧАН РАД

ДВАДЕСЕТ ТРЕЋЕ РЕПУБЛИЧКО ТАКМИЧЕЊЕ ЗАДАЦИ ИЗ ОСНОВА ЕЛЕКТРОТЕХНИКЕ ЗА УЧЕНИКЕ ПРВОГ РАЗРЕДА

ДВАДЕСЕТДРУГО РЕГИОНАЛНО ТАКМИЧЕЊЕ РЕШЕЊА ИЗ ИЗ ЕНЕРГЕТСКЕ ЕЛЕКТРОНИКЕ

пајтон, ниво 0, 01 час, okruzenje.pdf

ДВАДЕСЕТПРВО РЕПУБЛИЧКО ТАКМИЧЕЊЕ РЕШЕЊА ИЗ ИЗ ЕНЕРГЕТСКЕ ЕЛЕКТРОНИКЕ

АНКЕТА ЗА СТУДЕНТЕ ПРВЕ ГОДИНЕ СТУДИЈА

ДВАДЕСЕТПРВО РЕПУБЛИЧКО ТАКМИЧЕЊЕ ПИТАЊА И ЗАДАЦИ ИЗ ИЗ ЕНЕРГЕТСКЕ ЕЛЕКТРОНИКЕ

Del 4 Noen spesielle C-elementer

У П У Т С Т В О ЗА ЕЛЕКТРОНСКО ДОСТАВЉАЊЕ ПОДАТАКА НА ОСНОВУ УПУТСТВА ЗА СПРОВОЂЕЊЕ ОДЛУКЕ О УСЛОВИМА И НАЧИНУ ОБАВЉАЊА ПЛАТНОГ ПРОМЕТА СА

ДВАДЕСЕТ ЧЕТВРТО РЕГИОНАЛНО ТАКМИЧЕЊЕ РЕШЕЊА ИЗ ОСНОВА ЕЛЕКТРОТЕХНИКЕ ЗА УЧЕНИКЕ ПРВОГ РАЗРЕДА

ДВАДЕСЕТ ТРЕЋЕ РЕГИОНАЛНО ТАКМИЧЕЊЕ РЕШЕЊА ИЗ ОСНОВА ЕЛЕКТРОТЕХНИКЕ ЗА УЧЕНИКЕ ПРВОГ РАЗРЕДА

У П У Т С Т В О О ЕЛЕКТРОНСКОМ ДОСТАВЉАЊУ ПОДАТАКА БАНАКА НАРОДНОЈ БАНЦИ СРБИЈЕ САГЛАСНО ОДЛУЦИ О ОБАВЉАЊУ ПОСЛОВА С ФИНАНСИЈСКИМ ДЕРИВАТИМА

МЕТРОЛОШКИ ПРОПИСИ. МЕТРОЛОШКО УПУТСТВО за оверавање електронских (статичких) вишефункцијских бројила електричне енергије

I На прву годину основних струковних студија могу се уписати:

Oving 2. Oppgave 1. #include <stdio.h> int main(int argc, char **argv) { char *navn = argv[1]; printf ("Navnet ditt er %s\n", navn); } Oppgave 2

ДВАДЕСЕТ ДРУГО РЕГИОНАЛНО ТАКМИЧЕЊЕ РЕШЕЊА ИЗ ОСНОВА ЕЛЕКТРОТЕХНИКЕ ЗА УЧЕНИКЕ ПРВОГ РАЗРЕДА

ДВАДЕСЕТ ДРУГО РЕГИОНАЛНО ТАКМИЧЕЊЕ ЗАДАЦИ ИЗ ОСНОВА ЕЛЕКТРОТЕХНИКЕ ЗА УЧЕНИКЕ ПРВОГ РАЗРЕДА

ПРАВИЛНИК О ПОСТУПКУ УНУТРАШЊЕГ УЗБУЊИВАЊА

I предавање. Мерне јединице се деле на основне, изведене и придодате. SI система (Sisteme International) Meђународни систем јединица.

КОНКУРСНА ДОКУМЕНТАЦИЈА

Предмет: I - Измена и допуна конкурсне документације за ЈНВВ 02/2016 МАТЕРИЈАЛ ЗА ДИЈАЛИЗУ

Колоквијум траје 150 минута. Дозвољено је поседовање само једне свеске за рад и концепт. Прецртати оно што није за преглед.

КОНКУРСНА ДОКУМЕНТАЦИЈА у поступку јавне набавке мале вредности добара Оригинални тонери, Редни број набавке: М-4/16

ОПШТИНСКА УПРАВА ОПШТИНЕ НЕГОТИН НАЧЕЛНИК Трг Стевана Мокрањца 1, Неготин. Број јавне набавке 7/2017. Јавна набавка мале вредности

УПАТСТВО. Дигитално потпишување документи во MS Office

ЗАПИСИ О ДОГАЂАЈИМА Проф. др Радош Смиљковић, (Не)заборављена земља Србија, Глас Србије д. о. о., Краљево 2010.

ПРВА ПОМОЋ КОД ПОВРЕДА И КОД СТРАНОГ ТЕЛА У ДИСАЈНОМ ПУТУ

КОНКУРСНА ДОКУМЕНТАЦИЈА за јавну набавку мале вредности ОБВ /1

ЈАВНА НАБАВКА ЛЕКОВА И САНИТЕТСКОГ МАТЕРИЈАЛА. ОТВОРЕНИ ПОСТУПАК ЈАВНА НАБАВКА бр /2

КОНКУРСНА ДОКУМЕНТАЦИЈА

ГИС у шумарству Базе података. Др Бранислав Драшковић

ВИШИ СУД У БЕОГРАДУ улица Савска 17а, Београд

НАРУЧИЛАЦ НАРОДНА БИБЛИОТЕКА СРБИЈЕ- УСТАНОВА КУЛТУРЕ ОД НАЦИОНАЛНОГ ЗНАЧАЈА Б е о г р а д Скерлићева 1 КОНКУРСНА ДОКУМЕНТАЦИЈА

Смернице за преузимање резултата теста Годишње провере знања

КОНКУРСНA ДОКУМЕНТАЦИЈA

НИШТА. Иван Вукадиновић. Што рече неко Ниче је човек који је измислио Ништа из ни из чега.

ИНСТИТУТ ЗА РАТАРСТВО И ПОВРТАРСТВО. НОВИ САД, Максима Горког 30 ЈАВНА НАБАВКА УСЛУГА АНТИВИРУСНИ ПАРОГРАМСКИ ПАКЕТ SOPHOOS ПРОДУЖЕЊЕ ЛИЦЕНЦИ

СПЕЦИЈАЛНА БОЛНИЦА ЗА РЕХАБИЛИТАЦИЈУ ИВАЊИЦА КОНКУРСНА ДОКУМЕНТАЦИЈА

1) ГАЗДОВАЊЕ ЛОВИШТИМА И ПОПУЛАЦИЈАМА ДИВЉАЧИ

СПЕЦИЈАЛНА БОЛНИЦА ЗА РЕХАБИЛИТАЦИЈУ ИВАЊИЦА КОНКУРСНА ДОКУМЕНТАЦИЈА

Прилог 1. уз тачку 1. Одлуке Агенције О.бр.ОД- 111/10 од године 1. ИЗВЕШТАЈ О СТАЊУ УКУПНИХ И ОСИГУРАНИХ ДЕПОЗИТА ЗА

Набавка тонера и кертриџа за штампаче и мултифункционалне уређаје

Општа болница ''др Алекса Савић'' Ул. Пасјачка бр Прокупље КОНКУРСНА ДОКУМЕНТАЦИЈА ЗА ЈАВНУ НАБАВКУ ДОБАРА МИКРОБИОЛОШКИ ПОТРОШНИ МАТЕРИЈАЛ

Матрица претставува правоаголна или квадратна шема од броеви и се запишува: Ред 1

ЈП САВА ЦЕНТАР Нови Београд Милентија Поповића 9 К О Н К У Р С Н А Д О К У М Е Н Т А Ц И Ј А. Јавна набавка мале вредности број 35/17

директор Регулаторне агенције за електронске комуникације и поштанске услуге доноси Р Е Ш Е Њ Е

Београд, децембар године

САДРЖАЈ 5. ОБРАЗАЦ СТРУКТУРЕ ПОНУЂЕНЕ ЦЕНЕ СА УПУТСТВОМ КАКО ДА СЕ ПОПУНИ 6. ИЗЈАВА ПОНУЂАЧА ДА ЋЕ ИЗВРШЕЊЕ НАБАВКЕ ДЕЛИМИЧНО ПОВЕРИТИ ПОДИЗВОЂАЧУ

Издавач: Републички завод за статистику Милана Ракића 5, Београд Тел: ; факс:

Конкурсна документација у отвореном поступку за јавну набавку бр

КОНКУРСНА ДОКУМЕНТАЦИЈА

КОНКУРСНА ДОКУМЕНТАЦИЈА

ПРАВИЛА НАГРАДНЕ ИГРЕ У РОБИ Jaffa Cakes EXIT НАЗИВ, СЕДИШТЕ И ДРУГИ БИТНИ ПОДАЦИ У ПОГЛЕДУ ПРИРЕЂИВАЧА

ПРЕГЛЕД ТРЖИШТА ЕЛЕКТРОНСКИХ КОМУНИКАЦИЈА У РЕПУБЛИЦИ СРБИЈИ. - Други квартал године -

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

ТЕХНИЧКИ ФАКУЛТЕТ У БОРУ

КОНКУРСНА ДОКУМЕНТАЦИЈА. Дом здравља Др Милутин Ивковић Палилула

Løsningsforslag til 2. del av Del - EKSAMEN

Агилни развој софтвера

ЧИТАЛИЋИ Програм развијања и неговања вештина Читање и разумевање прочитаног и Писано изражавање

Пријемни из ИНФОРМАТИКЕ - испит за упис на Факултет

Инструкција институцијама РС у погледу припреме и реализације ИКТ пројеката

EНЕРГЕТСКИ ПРЕТВАРАЧИ 1 фебруар 2017.

Сликовити графикон (Piktochart)

ОПШТИНА БАЈИНА БАШТА ОПШТИНСКА УПРАВА КОНКУРСНА ДОКУМЕНТАЦИЈА ЗА ЈАВНУ НАБАВКУ УСЛУГА: УСЛУГЕ ОДРЖАВАЊА АУТОМОБИЛА ЈАВНА НАБАВКА МАЛЕ ВРЕДНОСТИ

PASCAL Динамичке структуре података

СТАТУС ОВЛАШЋЕНОГ ИЗВОЗНИКА. 1. Правни основ примене; Страна Општи услови за стицање статуса овлашћеног извозника; Страна 3. 3.

Аутор: Драгана Марић-Перуничић

КОНКУРСНА ДОКУМЕНТАЦИЈА. Јавна набавка мале вредности добара: НАБАВКА ПИЋА. Број ЈН: 20- ЈНМВД- 2018

ИЗМЕНА КОНКУРСНА ДОКУМЕНТАЦИЈА ОБВ /4 отворени поступак

Година 2016 Број 1 ISSN корупција. Потонуће новинарства: РАВНО ДО ДНА. надзор јавних финансија.

ЕЛЕКТРОНИКА И ТЕЛЕКОМУНИКАЦИЈЕ

КОНКУРСНА ДОКУМЕНТАЦИЈА ПОСТУПАК ЈАВНЕ НАБАВКЕ МАЛЕ ВРЕДНОСТИ НАБАВКА ДОБАРА - КАНЦЕЛАРИЈСКОГ МАТЕРИЈАЛА БРОЈ НАБАВКЕ ЈНМВ 01/16 УКУПНО СТРАНА: 44

КОНКУРСНA ДОКУМЕНТАЦИЈA

НАЗИВ ПОСТУПКА: НАБАВКА КАНЦЕЛАРИЈСКОГ НАМЕШТАЈА, ШИФРА ПОСТУПКА: НАМЕШТАЈ/15

ЗАВОД ЗА ЈАВНО ЗДРАВЉЕ УЖИЦЕ Ужице, ул. др Веселина Маринковића бр. 4 КОНКУРСНА ДОКУМЕНТАЦИЈА ЗА ЈАВНУ НАБАВКУ У ОТВОРЕНОМ ПОСТУПКУ 39/2017

Transkript:

Основи програмирања 1 Лекција 5 др zoranbanjac@viseredurs Висока школа електротехнике и рачунарства струковних студија Београд

Садржај Условни скокови break continue Показивачи Дефинисање показивача оператор & оператор * Дoдела почетне вредности показивачу Генерички показивачи Приказивање вредности показивача 2

Условни скокови break continue goto 3

break break наредба се користи за превремено ПРЕКИДАЊЕ итеративних петљи (while, for и do-while), као и наредбе switch Уколико постоји више наредби итерације, које су уметнуте једна у другу, наредба break прекида извршење само једне од њихитоонеукојојсеналази 4

break for(i=0; ; ++i) x = i-3+12*i if( x >= 500) break; 5

break #include <stdioh> main() int c; printf("unesite karkter( x za izlaz): "); while(1) c = getc(stdin); if (c == 'x') break; printf("prekid beskonacne petlje!\n"); 6

break - switch main() int a = 1; int b = 2; switch( a+b ) case 12: printf("zbir je 12\n"); break; case 3: printf("zbir je 3\n"); break; case 41: printf("zbir je 41\n"); break; default: printf("zbir je nepoznat\n"); break; Zbir je 3 7

break - switch main() int a = 1; int b = 2; switch( a+b ) case 1: 2 < Zbir < 6 printf("zbir je 1\n"); break; case 2: printf("zbir je 2\n"); break; case 3: case 4: case 5: printf("2 < Zbir < 6\n"); break; default: printf("zbir je nepoznat\n"); break; 8

continue Наредба continue, за разлику од наредбе break НЕ прекида извршење целокупне наредбе итерације (while, for и do-while) већ прекида само једну њену (тренутну) итерацију 9

continue Код while петље доводи до скока на тестирање Код do-while петље доводи до скока на тестирање Код for петље доводи до скока на izraz3 (инкремент) и izraz2 (тестирање) 10

continue #include <stdioh> main() 2 4 6 8 10 int x; printf("ispis parnih brojeva do 10\n"); for( x = 1; x <= 10; x++ ) if( x % 2!= 0 )/* Ako broj nije paran */ continue; /* Idi na poсetak petlje */ printf( "\n%2d", x ); printf( "\n"); 11

continue #include <stdioh> main() int h = 200, brojac = 0; printf("brojevi od %d do 0\n", h); printf("koji nisu deljivi sa 2 i 3:\n"); do if ( h%2 == 0) /* izostavi deljive sa 2 */ continue; if (h % 3 == 0) /* sa 3 */ continue; printf("%5d", h), brojac++; if (brojac % 10 == 0) /* 10 u liniji */ putchar('\n'); while (h--); 12

Показивачи Показивач (pointer) је градивни део програмског језика C који нуди већу контролу над меморијом рачунара Показивач је променљива која може да садржи меморијску адресу друге променљиве 13

Показивачи Тип податка: скуп вредности (short int од -32768 до 32767) скуп операција (сабирање, одузимање) До сада поменути типови података су имали своје име (int, float, double) Вредности које може да има податак типа показивач су адресе меморијских локација Тип податка показивач нема своје име 14

Показивачи Број бајтова које заузима Показивач је 2 бајта 4 бајта Зависи од величине меморије (опсега адреса) За 64кВ меморије минимална меморијска локација 1 бајт, свака локација може да се опише са 16 бита, показивач заузима 2 бајта 15

Дефинисање показивача Општа синтакса је: tip_podatka *ime_pokazivaca; tip_podatka представља тип податка чију адресу показивач (треба да) садржи * обавезан знак ime_pokazivaca идентификатор Пример: int *p; float *ptr; 16

Дефинисање показивача int *p; int* p; int * p; Знак * може да се постави било где између типа податка и имена показивача int* p, q; Само p је показивач, а q није Пепорука је да се знак * пише непосредно поред имена променљиве int *p, *q; 17

Оператори за показиваче C програмски језик има два оператора за променљиве типа показивач: оператор & оператор * 18

оператор & одређивање адресе променљиве додела адресе промељиве показивачу int main() int x = 25; int *p; p = &x; *p = 48; return 0; 19

оператор & Вредности адреса у наредним примерима су изабране насумично! adr:1200 RAM?? ime: p int main() int x = 25; int *p; p = &x; *p = 48; adr:1800 25 ime: x return 0; 20

оператор & p = &x чита се: у променљиву p упиши адресу (&) променљиве x adr:1200 adr:1800 1800 25 ime: p ime: x int main() int x = 25; int *p; p = &x; *p = 48; return 0; 21

оператор & Чува се само почетна адреса! Променљива x (int) заузима 4 бајта меморије Показивач р садржи адресу првог бајта adr:1200 adr:1201 adr:1202 adr:1203 adr:1800 adr:1801 adr:1802 adr:1803 1800 25 ime: p ime: x 22

оператор * Податаку у меморији, може да се приступи применом оператора * Приступање је посредно, помоћу адресе, назива се и индиректно адресирање Оператор * се назива оператор индиректног адресирања 23

оператор * *p = 48 чита се: на адресу коју садржи показивач p упиши вредност 48 adr:1200 1800 adr:1800 48 ime: p ime: x int main() int x = 25; int *p; p = &x; *p = 48; return 0; 24

оператори Ако је p променљива типа показивач p, &p, и *p : имају различита значења p Садржај променљиве p (адреса неке друге променљиве), &p Адреса променљиве p, *p Вредност меморијске локације чију адресу садржи показивач p 25

Пример 1 int main() adr:1200?? adr:1750?? ime: p ime: x &p p int x; int *p; 1200 (адреса променљиве p)?? (вредност променљиве p) *p не постоји &x 1750 (адреса променљиве x) x?? (вредност променљиве x) 26

Пример 1 наставак adr:1200?? adr:1750 &p p *p &x x 50 ime: p ime: x int main() int x; int *p; x = 50; 1200 (адреса променљиве p)?? (вредност променљиве p) не постоји 1750 (адреса променљиве x) 50 27

Пример 1 наставак adr:1200 1750 adr:1750 &p p *p &x x 50 ime: p ime: x 1750 50 50 int main() int x; int *p; x = 50; p = &x; 1200 (адреса променљиве p) 1750 (адреса променљиве x) 28

Пример 1 наставак adr:1200 1750 adr:1750 &p p *p &x x 38 ime: p ime: x 1750 38 38 int main() int x; int *p; x = 50; p = &x; *p = 38; 1200 (адреса променљиве p) 1750 (адреса променљиве x) 29

Пример 2 &ptr1 2350 ptr1?? *ptr1?? &ptr2 2600 ptr2?? *ptr2?? &x 1320 x?? &y 1950 y?? int main() int *ptr1, *ptr2; int x, y; ptr1 = &x; *ptr1 = 42; ptr2 = ptr1; *ptr2 = 53; ptr1 = &y; *ptr1 = 88; return 0; 30

Пример 2 наставак &ptr1 ptr1 *ptr1 &ptr2 ptr2 *ptr2 &x x &y y 2350 1320?? 2600???? 1320?? 1950?? int main() int *ptr1, *ptr2; int x, y; ptr1 = &x; *ptr1 = 42; ptr2 = ptr1; *ptr2 = 53; ptr1 = &y; *ptr1 = 88; return 0; 31

Пример 2 наставак &ptr1 ptr1 *ptr1 &ptr2 ptr2 *ptr2 &x x &y y 2350 1320 42 2600???? 1320 42 1950?? int main() int *ptr1, *ptr2; int x, y; ptr1 = &x; *ptr1 = 42; ptr2 = ptr1; *ptr2 = 53; ptr1 = &y; *ptr1 = 88; return 0; 32

Пример 2 наставак &ptr1 ptr1 *ptr1 &ptr2 ptr2 *ptr2 &x x &y y 2350 1320 42 2600 1320 42 1320 42 1950?? int main() int *ptr1, *ptr2; int x,y; ptr1 = &x; *ptr1 = 42; ptr2 = ptr1; *ptr2 = 53; ptr1 = &y; *ptr1 = 88; return 0; 33

Пример 2 наставак &ptr1 ptr1 *ptr1 &ptr2 ptr2 *ptr2 &x x &y y 2350 1320 53 2600 1320 53 1320 53 1950?? int main() int *ptr1, *ptr2; int x, y; ptr1 = &x; *ptr1 = 42; ptr2 = ptr1; *ptr2 = 53; ptr1 = &y; *ptr1 = 88; return 0; 34

Пример 2 наставак &ptr1 ptr1 *ptr1 &ptr2 ptr2 *ptr2 &x x &y y 2350 1950?? 2600 1320 53 1320 53 1950?? int main() int *ptr1, *ptr2; int x, y; ptr1 = &x; *ptr1 = 42; ptr2 = ptr1; *ptr2 = 53; ptr1 = &y; *ptr1 = 88; return 0; 35

Пример 2 наставак &ptr1 ptr1 *ptr1 &ptr2 ptr2 *ptr2 &x x &y y 2350 1950 88 2600 1320 53 1320 53 1950 88 main() int *ptr1, *ptr2; int x, y; ptr1 = &x; *ptr1 = 42; ptr2 = ptr1; *ptr2 = 53; ptr1 = &y; *ptr1 = 88; 36

Додела почетне вредности показивачу Почетна вредност показивача треба да буде: адреса неког претходно дефинисаног податка; 0(нула) int main( ) NULL int x; int *pokazivac = &x; int *p2 = NULL /* moze i int *p2 = 0 */ return 0; 37

Генерички показивачи Показивачи код којих није одређен тип Уместо типа податка (int, float, double) ставља се резервисана реч void viod *point; Помоћу генеричких показивача није могуће да се приступи подацима! 38

Генерички показивачи int main() int x; void *p = &x; /* Greska! */ void *p2; p2 = &x; /* Greska! Tip рokazivaca*/ 39

Генерички показивачи int main() int x; void *p2; /* p2 sadrzi adresu promenljive x */ (int *)p2=&x; /* na adresu promenljive x upisati 3 */ *((int *)p2) = 3; /* isto sto i x=3 */ 40

Приказивање вредности показивача printf и формат %p #include<stdioh> int main() int x; int *px; px = &x; printf("vrednost pokazivaca: %p\n", px); return 0; 41

Приказивање вредности показивача #include<stdioh> int main() int x = 5; int *px; Vrednost x: 5 Adresa od x: 0012FF7C Vrednost pokazivaca: 0012FF7C Sadrzaj mem ciju adr sadrzi pokazivac: 5 px = &x; printf("vrednost x: %d\n", x); printf("adresa od x: %p\n", &x); printf("vrednost pokazivaca: %p\n", px); printf("sadrzaj mem ciju adr sadrzi \ pokazivac: %d\n", *px); 42

Рачунске операције над показивачима Oперације над показивачима: додела вредности једног показивача другом додавање целобројног податка на вредност показивача и одузимање целобројног податка од вредности показивача упређивање вредности два показивача упоређивање вредности показивача са нулом 43

Додела вредности једног показивача другом main() double x = 123; double *px = &x; double *p1; int *p2; /* px sadrzi adresu promenljive x */ p1 = px; /* p1 sadrzi adresu promenljive x */ p2 = px; /* Greska! tip */ p2=(int *)px; /* Ovako moze, ali na odgovornost programera */ 44

Додавање и одузимање Операторима: + ++ += рачуна се збир вредности показивача и целог броја, Операторима: = рачуна сe разлика вредности показивача и целог броја 45

Додавање и одузимање int main() int *p; double *q; char *chptr; p++; /* p=p+1 povecava p za 4 bajta */ q++; /* q=q+1 povecava q za 8 bajtоva */ chptr++;/* povecava chptr za 1 bajt */ p=p+2; /* povecava vrednost p za 2x4 bajtova*/ 46

Упоређивање вредности два показивача Оператори = =!= два показивача истог типа могу се упоређивати како би се добио одговор да ли показују на исти податак или не 47

Упоређивање вредности показивача са нулом Да ли показивач садржи валидну адресу? Уколико показивач има вредност нула (или NULL) онда он не показује ни на један податак Примена симболичке константе: NULL захтева навођење стандардне библиотеке <stdioh> 48

Показивач на показивач може да садржи адресу другог показивача tip **ime_pokazivaca 49

Пример 2 &b b *b &c c *c **c &a a 8092???? 10502?????? 7320 z int main() char a='z'; char * b; char ** c; b = &a; c = &b; return 0; 50

Пример 2 наставак &b b *b &c c *c **c &a a 8092 7320 z 10502?????? 7320 z int main() char a='z'; char *b; char **c; b = &a; c = &b; return 0; 51

Пример 2 наставак &b b *b &c c *c **c &a a 8092 7320 z 10502 8092 7320 z 7320 z int main() char a='z'; char *b; char **c; b = &a; c = &b; return 0; 52

Хваланапажњи Питања? 53