Obsah Předmluva (19) O autorovi (21) Kapitola 1. Začínáme (23) - Odkud pochází C? (23)
- Proč C? (24)
- Výkon (25)
- Účinnost (25)
- Přenositelnost (25)
- Síla a flexibilita (25)
- Programátorská centricita
- Slabé stránky (26)
- Kam jde C? (26)
- Co dělají počítače? (28)
- Jazyky a překladače na vysoké úrovni (29)
- Používání C: Sedm kroků (29)
- Krok 1: Definujte programové cíle (30)
- Krok 2: Návrh programu (30)
- Krok 3: Psaní kódu (31)
- Krok 4: kompilace (31)
- Krok 5: Spuštění programu (32)
- Krok 6: Testování a ladění receptu
- Krok 7: Údržba a úprava programu (33)
- Komentář (33)
- Programovací mechanika (33)
- Soubory objektových kódů, spustitelné soubory a knihovny (34)
- UNIX (36)
- Linux (38)
- Integrovaná vývojová prostředí (Windows) (38)
- Překladače DOS pro počítače IBM (40)
- C a Macintosh (40)
- Jazykové standardy (40)
- Standard ANSI / ISO C (41)
- Standardní C99 (42)
- Jak je tato kniha organizována (43)
- Metody zápisu (43)
- Písmo (43)
- Text na obrazovce (43)
- Shrnutí kapitoly (45)
- Kontrolní otázky 45
- Cvičení (45)
Kapitola 2. Úvod do C (47) - Jednoduchý příklad v jazyce C.
- Vysvětlení (48)
- Přístup 1: Rychlý přehled (48)
- Přístup 2: Podrobnosti (50)
- Vytvoření jednoduchého programu (59)
- Jak zajistit, aby byl váš program čitelný? (60)
- Další krok (60)
- Dokumentace (61)
- Několik prohlášení
- Násobení (61)
- Zobrazení více hodnot
- Více funkcí
- Odstraňování problémů (64)
- Chyby syntaxe
- Sémantické chyby 65
- Stav programu (67)
- Klíčová slova (67)
- Klíčové problémy (68)
- Shrnutí kapitoly (69)
- Kontrolní otázky 69
- Cvičení (70)
Kapitola 3. Data v C - Ukázkový program (74)
- Proměnné a konstanty (76)
- Klíčová slova datového typu
- Typy celých čísel a typy s plovoucí desetinnou čárkou
- Celé číslo (78)
- Číslo s plovoucí desetinnou čárkou (79)
- Datové typy v jazyce C.
- Typ int (80)
- Jiné typy celých čísel (84)
- Používání znaků: Typ Char
- Typ _Bool (95)
- Přenosné typy: inttypes.h 96
- Float, Double a Long Double
- Složité a imaginární typy 103
- Jiné typy (103)
- Velikosti typů (105)
- Používání datových typů 107
- Dávejte pozor na argumenty 107
- Jeden další příklad 109
- Co se děje (110)
- Potenciální problém (111)
- Klíčové koncepty 111
- Shrnutí kapitoly 112
- Kontrolní otázky 113
- Cvičení
Kapitola 4. Řetězce a formátovaný vstup / výstup 117 - Pro začátečníky ... program (118)
- Struny: Úvod 119
- Char Arrays and the Null Character 119
- Použití řetězů (120)
- Funkce strlen () 121
- Konstanty a C preprocesor 123
- Konstantní modifikátor 127
- Standardní konstanty (127)
- Znát a používat printf () a scanf () 129
- Funkce printf () 130
- Použití printf () 130
- Modifikátory specifikátoru převodu pro printf () 132
- Důležitost přeměny 138
- Použití funkce scanf () 144
- Modifikátor * ve funkcích printf () a scanf () (150)
- Praktické tipy (151)
- Klíčové koncepty 152
- Souhrn kapitoly 153
- Kontrolní otázky 154
- Cvičení
Kapitola 5. Operátory, výrazy a příkazy 159 - Úvod do smyčky (160)
- Základní operátoři
- Operátor přiřazení: = (162)
- Operátor přidání: + (164)
- Operátor odčítání: - (165)
- Znamení operátoři: - a + 165
- Operátor násobení: * (166)
- Provozovatel divize: / 168
- Priorita operátora 169
- Priorita a pořadí výpočtu 171
- Někteří další operátoři 172
- The sizeof Operator and the size_t Type 172
- Operátor modulo:% (173)
- Operátory přírůstku a snížení: ++ a - 175
- Dekrementace - (179)
- Priorita (180)
- Nesnažte se být příliš chytří (181)
- Výrazy a prohlášení 182
- Výrazy 182
- Manuály (183)
- Složené výpisy (bloky) 186
- Zadejte převody
- Funkce s argumenty 192
- Ukázkový program (194)
- Klíčové problémy (195)
- Shrnutí kapitoly 196
- Kontrolní otázky 197
- Cvičení (200)
Kapitola 6. Řídicí příkazy C: Smyčky 203 - Příklad (204)
- Komentář (205)
- Čtecí smyčka ve stylu C 207
- Prohlášení The while 207
- Ukončení smyčky 208
- Kdy smyčka končí? (208)
- zatímco jako Loop se vstupní podmínkou 209
- Rady pro syntaxi
- Co je větší: Používání relačních operátorů a výrazů 211
- Co je pravda? (213)
- Co jiného je pravda? (214)
- Potíže s pravdou (215)
- Nový typ _Bool
- Priorita relačních operátorů
- Nedefinované smyčky a počítací smyčky 221
- Pro smyčku
- Další operátoři přiřazení: + =, - =, * =, / =,% = (228)
- Operátor čárky :, (229)
- Zeno z Elea proti smyčce for
- Smyčka s podmínkou ukončení: udělejte do 233
- Kterou smyčku použít? (236)
- Vnořené smyčky 237
- Přehled (238)
- Další varianta (238)
- Pole (239)
- Pro interoperabilitu polí a smyček 240
- Příklad použití smyčky a návratové hodnoty funkce 242
- Přehled programu 245
- Používání funkcí, které vracejí hodnoty 246
- Klíčové problémy (246)
- Souhrn kapitoly 247
- Kontrolní otázky 248
- Cvičení
Kapitola 7. C Ovládací příkazy: Větve a skoky 257 - Prohlášení if (258)
- Přidáme další (260)
- Další příklad: funkce getchar () a putchar () 262
- Rodina znakových funkcí ctype.h 264
- Výběr z mnoha možností: jinak pokud (266)
- Připojování jinde s if 269
- Více informací o vnořených příkazech 271
- Buďme logičtí (275)
- Alternativní notace: iso646.h Záhlaví 277
- Prioritní (277)
- Pořadí výpočtu 278
- Rozsahy
- Program počítání slov 280
- Podmíněný provozovatel:?: (284)
- Přidání smyčky: pokračovat a přerušit
- Pokračující prohlášení 286
- Prohlášení o přestávce 289
- Výběr z mnoha možností: Switch and Break 291
- Použití příkazu switch 293
- Získání pouze první postavy na řádku 294
- Více štítků (295)
- Přepnout if else (298)
- Goto prohlášení 298
- Klíčové problémy (301)
- Shrnutí kapitoly 302
- Kontrolní otázky 303
- Cvičení (306)
Kapitola 8. Vstup a výstup znaků a předávání 309 - Jeden znak I / O: getchar () a putchar () (310)
- Nárazníky (311)
- Dokončení zadávání pomocí klávesnice
- Soubory, streamy a vstup z klávesnice
- Konec souboru (314)
- Přesměrování a soubory
- Přesměrování v systémech UNIX, Linux a DOS
- Vytvoření přátelštějšího uživatelského rozhraní 322
- Provoz s vyrovnávacím vstupem (322)
- Kombinace číselných a znakových vstupů 325
- Ověření vstupu 328
- Analýza programu (332)
- Vstupní toky a čísla 333
- Menu (334)
- Úkoly (334)
- Směrem k agilitě (335)
- Kombinace znakových a číselných údajů 337
- Klíčové problémy (340)
- Shrnutí kapitoly 340
- Kontrolní otázky 341
- Cvičení
Kapitola 9. Funkce 345 - Připomenutí (345)
- Vytvoření a použití jednoduché funkce 347
- Analýza programu (347)
- Argumenty funkcí
- Definování funkce, která bere argument: Formální argumenty 351
- Prototyp funkce, která argumentuje 352
- Volání funkce, která bere argument: Skutečné argumenty 353
- Hledisko černé skříňky (354)
- Vrácení hodnoty s výkazem návratnosti 354
- Typy funkcí 357
- Prototypy ANSI C (358)
- Problém (359)
- ANSI na záchranu! (360)
- Žádné argumenty a argumenty nedefinované 361
- Síla prototypů 362
- Rekurze (362)
- Rekurze bez tajemství (363)
- Základy rekurze
- Závěrečná rekurze 365
- Rekurze a reverzní sekvence
- Pro a proti rekurzi
- Kompilace programů s více než jednou funkcí 371
- UNIX (371)
- Linux (371)
- DOS (kompilátory příkazového řádku) (372)
- Překladače Windows a Macintosh (372)
- Používání hlavičkových souborů 372
- Získání adres: & Operátor 376
- Úpravy proměnných ve volací funkci 377
- Ukazatele: První pohled 379
- Operátor dereference: * (380)
- Deklarace ukazatelů 381
- Používání ukazatelů ke komunikaci mezi funkcemi 382
- Klíčové koncepty 386
- Shrnutí kapitoly 387
- Kontrolní otázky 387
- Cvičení
Kapitola 10. Pole a ukazatele 391 - Pole (391)
- Inicializace 392
- Použití const s poli 393
- Poznámka k proměnným třídám
- Určená inicializace (C99) 397
- Přiřazení hodnot polím 398
- Rozsah polí 398
- Určení velikosti pole
- Vícerozměrná pole 401
- Inicializace dvourozměrného pole
- Ukazatele na pole 405
- Funkce, pole a ukazatele 408
- Použití argumentů ukazatele 411
- Komentář: Ukazatele a pole 414
- Práce na indikátorech (414)
- Ochrana obsahu pole
- Použití klíčového slova const ve formálních parametrech
- Více o const 421
- Ukazatele a vícerozměrná pole 423
- Ukazatele na vícerozměrná pole 426
- Kompatibilita ukazatele
- Funkce a vícerozměrná pole 429
- Pole s proměnnou délkou (433)
- Komplexní literatura 437
- Klíčové problémy 439
- Shrnutí kapitoly 440
- Kontrolní otázky 441
- Cvičení
Kapitola 11. Řetězce a funkce řetězců 447 - Řetězcová reprezentace a I / O řetězce 447
- Definování řetězců 449
- Řetězové konstanty (449)
- Řetězcová pole a inicializace 450
- Pole vs. ukazatel 452
- Pole řetězců 455
- Ukazatele a struny 456
- Načítání řetězců 458
- Vytvoření místa (458)
- Získá () 459
- Funkce fgets () 461
- Funkce scanf () 462
- Zobrazovací řetězce (464)
- Funkce puts () 464
- Funkce fputs () 465
- Funkce printf () 466
- Udělejte to sami (466)
- Funkce řetězce 469
- Funkce strlen () 469
- Funkce strcat () 471
- Funkce strncat () 472
- Funkce strcmp () 473
- Funkce strcpy () a strncpy () 478
- Funkce sprintf () 483
- Další funkce řetězce 484
- Příklad použití: Řazení řetězců 486
- Třídění ukazatelů namísto řetězců 487
- Algoritmus výběru řazení 488
- Řetězce a znakové funkce rodiny ctype.h 489
- Argumenty příkazového řádku 491
- Argumenty příkazového řádku v integrovaných prostředích
- Argumenty příkazového řádku Macintosh 493
- Převod řetězců na čísla 494
- Klíčové problémy
- Souhrn kapitoly 497
- Kontrolní otázky 498
- Cvičení
Kapitola 12. Proměnné třídy, konektivita a správa paměti 503 - Třídy proměnných
- Variabilní rozsah (504)
- Variabilní konektivita
- Variabilní doba trvání (507)
- Automatické proměnné 507
- Zaregistrujte proměnné
- Statické proměnné s blokovým rozsahem 513
- Statické proměnné s externím spojením 514
- Statické proměnné s vnitřní vazbou 519
- Programy pro více souborů
- Specifikátory proměnných tříd
- Třídy proměnných a funkcí
- Kterou třídu zvolit? (524)
- Pseudonáhodné funkce a statické proměnné
- Hodit kostkami (528)
- Přidělení paměti: malloc () a free () 532
- Porozumění funkci Free () 536
- Funkce calloc () 537
- Dynamická alokace paměti a pole proměnné velikosti 538
- Variabilní třídy a dynamické přidělování paměti
- Kvalifikátory typu ANSI C (540)
- Kvalifikátor typu Const (540)
- Těkavý kvalifikátor typu 543
- Omezit kvalifikátor typu 544
- Stará klíčová slova na nových místech (545)
- Klíčové koncepty 546
- Shrnutí kapitoly 547
- Kontrolní otázky 548
- Cvičení (550)
Kapitola 13. Zacházení se soubory 553 - Výměna informací se soubory (553)
- Co je to za soubor? (554)
- Úrovně vstupu / výstupu (555)
- Standardní pilníky (556)
- Standardní vstup / výstup (556)
- Kontrola argumentů příkazového řádku 557
- Funkce fopen () 558
- Funkce getc () a putc () 559
- Znak EOF (konec souboru) (560)
- Funkce fclose () 561
- Ukazatele na standardní soubory
- Jednoduchý souborový kompresor 562
- Soubor I / O: fprintf (), fscanf (), fgets () a fputs () 564
- Funkce fprintf () a fscanf () 564
- Funkce fgets () a fputs () 565
- Dobrodružství v náhodném přístupu: fseek () a ftell () 568
- Jak fungují funkce fseek () a ftell ()? (569)
- Binární režim versus textový režim 571
- Přenosnost
- Funkce fgetpos () a fsetpos () 572
- V zákulisí standardního vstupu / výstupu (573)
- Další standardní I / O funkce 574
- Funkce Int ungetc (int c, FILE * fp) 574
- Funkce int fflush () 574
- Funkce int setvbuf () 575
- Binární I / O: fread () a fwrite () 575
- Funkce 577 fwrite size_t
- Funkce size_t fread (void * ptr, size_t size, size_t nmemb, FILE * fp) 578
- Funkce int feof (FILE * fp) a int ferror (FILE * fp) 578
- Příklad (578)
- Náhodný přístup na binární vstup / výstup (581)
- Klíčové problémy (583)
- Shrnutí kapitoly 583
- Kontrolní otázky 584
- Cvičení
Kapitola 14. Struktury a jiné formy dat - Ukázkový problém: vytvoření inventáře knih (590)
- Prohlášení o struktuře
- Definování strukturní proměnné 592
- Inicializace struktury 593
- Přístup ke členům struktury 594
- Inicializátory označené strukturou
- Pole struktur
- Deklarace řady struktur 598
- Identifikace členů řady struktur 599
- Detaily programu (599)
- Vnořené struktury
- Ukazatele na struktury 602
- Deklarace a inicializace ukazatele na strukturu 603
- Přístup k přísadám pomocí ukazatele 604
- Struktury vs. funkce 604
- Předávání komponentů konstrukcí 605
- Použití adresy struktury 606
- Předání struktury jako argument 607
- Další informace o novém a vylepšeném stavu struktury (607)
- Struktury nebo ukazatele na struktury? (611)
- Pole znaků nebo ukazatele na znaky ve struktuře 612
- Struktury, ukazatele a malloc () 613
- Složené literatury a struktury (C99) 615
- Členové flexibilního pole (C99) 617
- Funkce využívající pole struktur 619
- Zápis obsahu struktury do souboru
- Struktury: Co bude dál? (625)
- Unie: A Quick Look (625)
- Typy výčtu 628
- Pevný výčet (629)
- Výchozí hodnoty 630
- Přiřazené hodnoty (630)
- Použití výčtu
- Sdílený jmenný prostor 632
- typedef: rychlý pohled (632)
- Weird Declarations (635)
- Funkce a ukazatele 637
- Klíčové koncepty (644)
- Shrnutí kapitoly (644)
- Kontrolní otázky 645
- Cvičení
Kapitola 15. Manipulace s bity 653 - Binární čísla, bity a bajty 654
- Binární celá čísla (654)
- Podepsaná celá čísla (655)
- Binární čísla s plovoucí desetinnou čárkou 656
- Jiné číselné systémy (657)
- Osmičkový systém (657)
- Šestnáctkový systém 657
- Bitoví operátoři 659
- Bitové logické operátory 659
- Použití: masky (660)
- Použití: Soustružení bitů 661
- Použití: Zakázání bitů 662
- Použití: Reverse Bits 662
- Použití: Kontrola hodnoty bitů (663)
- Operátoři bitového posunu 663
- Příklad (665)
- Další příklad (666)
- Bitová pole 668
- Příklad (670)
- Bitová pole a bitové operátory
- Klíčové koncepty 680
- Souhrn kapitoly 680
- Kontrolní otázky 681
- Cvičení
Kapitola 16. Preprocesor a knihovna C. - První kroky v překladu programu
- Symbolické konstanty: #define (687)
- Žetony (691)
- Předefinování konstant 691
- #define a argumenty 692
- Makro argumenty v řetězcích
- Konektor předprocesoru: Operátor ## (696)
- Makra proměnných čísel: ... a __VA_ARGS__ (697)
- Makro nebo funkce? (698)
- Zahrnout soubory: #include (699)
- Soubory záhlaví: Příklad (700)
- Použití pro hlavičkové soubory 702
- Jiné směrnice (704)
- Směrnice #undef (704)
- Definováno: Z pohledu Preprocesoru C.
- Podmíněná kompilace (705)
- Předdefinovaná makra 710
- #line and #error (711)
- #pragma (712)
- Vložené funkce 713
- Knihovna C 715
- Přístup do knihovny C 716
- Použití popisů funkcí 716
- Matematická knihovna 718
- Knihovna obecných nástrojů
- Exit () a atexit () 721
- Funkce qsort () 723
- Pomocí funkce qsort () 725
- Definice funkce Compare () 726
- Knihovna assert.h 728
- Funkce memcpy () a memmove () z knihovny string.h Knihovna 729
- Variabilní argumenty: stdarg.h 731
- Souhrn kapitoly 734
- Kontrolní otázky 735
- Cvičení
Kapitola 17. Pokročilé znázornění dat 739 - Seznámení se s reprezentací dat 740
- Připojené seznamy (743)
- Abstraktní datové typy (ATD) 751
- Fronty (767)
- Definování fronty jako abstraktního datového typu
- Simulace ve frontě 778
- Propojený seznam nebo pole? (784)
- Binární stromy 788
- Co bude dál? (812)
- Klíčové problémy (813)
- Shrnutí kapitoly (813)
- Kontrolní otázky 814
Dodatek A Kontrolní otázky 817 Dodatek B Shrnutí 855 - I.Další čtení (855)
- II. Operátoři C 859
- III. Základní typy a třídy proměnných
- IV. Výrazy, příkazy a tok řízení v programu 870
- V. Standardní knihovna ANSI C a rozšíření ke standardu C99 (876)
- VI. Rozšířené typy celých čísel 922
- VII. Podpora pro rozšířené sady znaků (926)
- VIII. Efektivnější numerické výpočty ve standardu C99 (932)
- IX. Rozdíly mezi C a C ++ 936
Rejstřík (943) |