Obsah ----- Predmluva.................................................1 Kapitola 0: Uvod..........................................2 Kapitola 1: Uvod k vyuce..................................5 1.1 Zaciname..................................5 1.2 Promenne a aritmetika.....................7 1.3 Prikaz for...............................11 1.4 Symbolicke konstanty.....................12 1.5 Vyber uzitecnych programu................12 1.6 Pole.....................................18 1.7 Funkce...................................20 1.8 Argumenty-volani hodnotou................21 1.9 Znakova pole.............................22 1.10 Externi promenne........................25 1.11 Shrnuti.................................27 Kapitola 2: Typy, operatory a vyrazy.....................29 2.1 Nazvy promennych.........................29 2.2 Typy dat a jejich delka..................29 2.3 Konstanty................................30 2.4 Deklarace................................32 2.5 Aritmeticke operatory....................32 2.6 Relacni operatory........................33 2.7 Konverze typu............................34 2.8 Operatory pricteni a odecteni jednicky...37 2.9 Bitove logicke operatory.................39 2.10 Operatory prirazeni a vyrazy............40 2.11 Podminene vyrazy........................42 2.12 Priorita a poradi vyhodnocovani.........43 Kapitola 3: Vetveni programu.............................45 3.1 Prikazy a bloky..........................45 3.2 If - else................................45 3.3 Else - if................................46 3.4 Prepinac.................................48 3.5 Cykly while a for........................49 3.6 Cykly do - while.........................52 3.7 Break....................................53 3.8 Continue.................................54 3.9 Prikaz goto a navesti....................55 Kapitola 4: Funkce a struktura programu..................57 4.1 Zaklady..................................57 4.2 Funkce,ktere nevraceji cele cisla........60 4.3 Vice o argumentech funkci................62 4.4 Externi promenne.........................63 4.5 Pravidla pole pusobnosti.................66 4.6 Staticke promenne........................70 4.7 Promenne typu registr....................71 4.8 Blokove struktury........................71 4.9 Inicializace.............................72 4.10 Rekurze.................................74 4.11 Preprocesor jazyka C....................75 Kapitola 5: Pointry a pole..............................79 5.1 Pointry a adresy........................79 5.2 Pointry a argumenty funkci..............81 5.3 Pointry a pole..........................83 5.4 Adresova aritmetika.....................85 5.5 Znakove pointry a funkce................88 5.6 Pointry nejsou cela cisla...............90 5.7 Vicerozmerne pole.......................91 5.8 Pole pointru. Pointry na pointry........93 5.9 Inicializace pole pointru...............95 5.10 Pointry a vicedimenzionalni pole.......96 5.11 Argumenty ve tvaru prikazove radky.....97 5.12 Pointry funkci........................100 Kapitola 6: Struktury..................................103 6.1 Zaklady................................103 6.2 Struktury a funkce.....................105 6.3 Pole struktur..........................107 6.4 Pointry na struktury...................110 6.5 Struktury odkazujici samy na sebe......111 6.6 Prohledavani tabulky...................115 6.7 Pole bitu..............................117 6.8 Uniony.................................118 6.9 Prikaz typedef.........................120 Kapitola 7: Vstup a vystup.............................123 7.1 Pristup do standardni knihovny.........123 7.2 Stand. vstup a vystup-getchar,putchar..123 7.3 Formatovy vystup - printf..............125 7.4 Formatovy vstup - scanf................126 7.5 Formatove konverze u pameti............129 7.6 Pristup k souborum.....................129 7.7 Osetrovani chyb - stderr a exit........132 7.8 Radkovy vstup a vystup.................133 7.9 Nektere dalsi funkce.............. ....134 Kapitola 8: Systemove souvislosti s oper.systemem UNIX.137 8.1 Deskriptory souboru....................137 8.2 Vstup a vystup na nejnizsi urovni......138 8.4 Nahodni pristup - SEEK a LSEEK.........140 8.5 Priklad - implementace FOPEN a GETC....141 8.6 Priklad - vypis adresare...............145 8.7 Priklad - pridelovani pameti...........148 Kapitola 9: Priloha A: Referencni popis jazyka C...................153 1. Uvod.....................................153 2. Lexikalni konvence.......................153 2.1. Komentare..............................153 2.2. Identifikatory ( jmena )...............153 2.3. Klicova slova..........................154 2.4. Konstanty..............................154 2.4.1 Celociselne konstanty.................154 2.4.2 Explicitni konstanty typu long........154 2.4.3 Znakove konstanty.....................155 2.4.4 Konstanty v plovouci carce............155 2.5 Retezce.................................155 2.6 Technicke vybaveni......................156 3. Syntakticky zapis........................156 4. Co je jmeno ?............................156 5. Objekty a l-hodnoty......................157 6. Konverze.................................158 6.1 Znaky a cela cisla......................158 6.2 Plovouci carka a dvojnasobna presnost...158 6.3 Typy plovouci carky a typy celociselne..158 6.4 Ukazovatka a cela cisla.................159 6.5 Cisla bez znamenka......................159 6.6 Aritmeticke konverze....................159 7. Vyrazy...................................160 7.1 Zakladni vyrazy.........................160 7.2 Unarni operatory........................162 7.3 Multiplikativni operatory...............163 7.4 Aditivni operatory......................164 7.6 Relacni operatory.......................165 7.7 Operatory porovnani.....................165 7.8 Bitovy operator AND.....................165 7.9 Bitovy operator XOR.....................166 7.10 Bitovy operator OR.....................166 7.11 Logicky operator AND...................166 7.12 Logicky operator OR....................166 7.13 Operator podminky......................167 7.14 Operatory prirazeni....................167 7.15 Operator carky.........................168 8. Deklarace................................168 8.1 Specifikace tridy ulozeni...............168 8.2 Specifikace typu........................169 8.3 Deklaratory.............................170 8.4 Vyznam deklaratoru......................170 8.5 Deklarace struktur a unionu.............172 8.6 Inicializace............................174 8.7 Nazvy typu..............................176 8.8 TYPEDEF.................................177 9. Prikazy..................................178 9.1 Vyrazove prikazy........................178 9.2 Slozene prikazy nebo bloky..............178 9.3 Podminkove prikazy......................178 9.4 Prikaz WHILE............................179 9.5 Prikaz DO...............................179 9.6 Prikaz FOR..............................179 9.7 Prikaz SWITCH...........................180 9.8 Prikaz BREAK............................180 9.9 Prikaz CONTINUE.........................181 9.10 Prikaz RETURN..........................181 9.11 Prikaz GOTO............................181 9.12 Prikaz navesti.........................181 9.13 Prikaz NULL............................182 10. Externi definice........................182 10.1 Definice externich funkci..............182 10.2 Externi definice dat...................183 KAPITOLA 10: 11. Pravidla rozsahu platnosti..............185 11.1 Lexikalni rozsah platnosti.............185 11.2 Rozsah platnosti externich promennych..186 12. Ridici radky prekladace.................186 12.1 Zamena syntakticke jednotky............186 12.2 Vkladani souboru.......................187 12.3 Podminena kompilace....................187 12.4 Rizeni radkovani.......................188 13. Implicitni deklarace....................188 14. Dalsi informace o typech................188 14.1 Struktury a uniony.....................188 14.2 Funkce.................................189 14.3 Pole, ukazovatka a indexy..............189 14.4 Explicitni konverze ukazovatek.........190 15. Konstantni vyrazy.......................191 16. Uvahy o prenositelnosti.................192 17. Anachronizmy............................193