Język C niewątpliwie należy do kanonu języków programowania. Cechuje się elegancją i prostotą, jest wszechstronny i elastyczny, jednak uważa się go za trudny i wymagający. Na pewno warto opanować C — jeśli nauczysz się tworzyć solidny kod w tym języku, poradzisz sobie z każdym innym językiem programowania.
Trzymasz w dłoni kolejne wydanie niezwykle popularnego podręcznika do nauki C. Podobnie jak poprzednie wydania, także to zostało zaktualizowane i uzupełnione, między innymi o
elementy standardu C11 . Książka stanowi przemyślane, przejrzyste i wnikliwe wprowadzenie do
języka C . Czytelnie wyjaśnia zasady programowania, zawiera opisy licznych rozwiązań programistycznych, setki przykładów kodu oraz ćwiczenia do samodzielnego wykonania. Dzięki takiemu układowi treści wiele osób nauczyło się C właśnie z tej książki, a kolejne jej wydania są przyjmowane z entuzjazmem.
W tej książce znajdziesz:
kompletne omówienie podstaw języka C i najważniejszych paradygmatów programowania
wyczerpujące informacje o nowych elementach C
jasne wskazówki dotyczące wyboru poszczególnych metod programowania w różnych sytuacjach
setki przykładowych fragmentów kodu
pytania sprawdzające i ćwiczenia utrwalające w każdym rozdziale
liczne informacje o możliwościach języka C
Naucz się C, a zrozumiesz istotę programowania!
Stephen Prata — jest emerytowanym wykładowcą astronomii, fizyki i programowania w College of Marin w Kentfield w Kalifornii. Obronił doktorat na Uniwersytecie Kalifornijskim w Berkeley. Jego przygoda z programowaniem komputerów rozpoczęła się od modelowania ruchu gwiazd. Jest autorem i współautorem licznych książek, m.in. na temat języka C i Uniksa.
Znajdź podobne książki
Ostatnio czytane w tej kategorii
Darmowy fragment publikacji:
Tytuł oryginału: C Primer Plus, 6th Edition
Tłumaczenie: Przemysław Szeremiota
ISBN: 978-83-283-1470-2
Authorized translation from the English language edition, entitled:
C PRIMER PLUS, Sixth Edition; ISBN 0321928423; by Stephen Prata;
published by Pearson Education, Inc, publishing as Addison Wesley.
Copyright © 2014 Pearson Education, Inc.
All rights reserved. No part of this book may by reproduced or transmitted in any form or by any
means, electronic or mechanical, including photocopying, recording or by any information storage
retrieval system, without permission from Pearson Education, Inc.
Polish language edition published by HELION S.A. Copyright © 2016.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje
były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za
związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo
HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe
z wykorzystania informacji zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/jcszp6.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/jcszp6
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
• Kup książkę
• Poleć książkę
• Oceń książkę
• Księgarnia internetowa
• Lubię to! » Nasza społeczność
SPIS TRE(cid:165)CI
O autorze .......................................................................................................................................... 19
Przedmowa ....................................................................................................................................... 21
Rozdzia(cid:239) 1. Zaczynamy .................................................................................................................. 23
Sk(cid:200)d C? .................................................................................................................................. 23
Dlaczego C? .......................................................................................................................... 24
Cechy u(cid:285)ytkowe ................................................................................................. 25
Efektywno(cid:258)(cid:202) ....................................................................................................... 25
Przeno(cid:258)no(cid:258)(cid:202) ........................................................................................................ 25
Moc i elastyczno(cid:258)(cid:202) ............................................................................................. 26
Ukierunkowanie na programist(cid:218) ....................................................................... 26
S(cid:239)abe strony ........................................................................................................ 26
Dok(cid:200)d zmierza C? ............................................................................................................... 27
Co robi(cid:200) komputery? .......................................................................................................... 28
J(cid:218)zyki wysokiego poziomu i kompilatory ....................................................................... 29
Standardy j(cid:218)zyka ................................................................................................................. 30
Standard ANSI/ISO C ......................................................................................... 31
Standard C99 ...................................................................................................... 31
Standard C11 ...................................................................................................... 32
Korzystanie z C — siedem kroków .................................................................................. 33
Krok 1. Okre(cid:258)lenie celów programu .................................................................. 33
Krok 2. Projektowanie programu ....................................................................... 34
Krok 3. Pisanie kodu .......................................................................................... 34
Krok 4. Kompilacja ............................................................................................. 35
Krok 5. Uruchomienie programu ....................................................................... 35
Krok 6. Testowanie i usuwanie b(cid:239)(cid:218)dów ............................................................ 35
Krok 7. Piel(cid:218)gnowanie i modyfikowanie programu ......................................... 36
Komentarz .......................................................................................................... 36
Mechanika programowania ............................................................................................... 37
Pliki kodu obiektowego, pliki wykonywalne i biblioteki ................................. 38
UNIX ................................................................................................................... 39
GNU Compiler Collection i LLVM .................................................................... 41
Poleć książkęKup książkę6
J(cid:125)ZYK C. SZKO(cid:146)A PROGRAMOWANIA
Linux ................................................................................................................... 42
Kompilatory dla komputerów PC ...................................................................... 43
Zintegrowane (cid:258)rodowiska programistyczne (Windows) .................................. 43
Opcja podwójna — Windows/Linux ................................................................. 45
J(cid:218)zyk C a komputery Mac .................................................................................. 45
Jak zorganizowano t(cid:218) ksi(cid:200)(cid:285)k(cid:218) ........................................................................................... 46
Konwencje zapisu ............................................................................................................... 46
Czcionka ............................................................................................................. 47
Tekst na ekranie ................................................................................................. 47
Informacje dodatkowe ........................................................................................................ 48
Podsumowanie rozdzia(cid:239)u .................................................................................................. 49
Pytania sprawdzaj(cid:200)ce ......................................................................................................... 49
(cid:109)wiczenie .............................................................................................................................. 49
Rozdzia(cid:239) 2. Wst(cid:218)p do C .................................................................................................................. 51
Prosty przyk(cid:239)ad j(cid:218)zyka C ................................................................................................... 51
Obja(cid:258)nienie ........................................................................................................................... 53
Podej(cid:258)cie 1. Szybkie streszczenie ...................................................................... 53
Podej(cid:258)cie 2. Szczegó(cid:239)y ........................................................................................ 55
Budowa prostego programu .............................................................................................. 64
Co zrobi(cid:202), aby Twój program by(cid:239) czytelny? .................................................................... 65
Kolejny krok ......................................................................................................................... 66
Dokumentacja ..................................................................................................... 66
Wielokrotne deklaracje ...................................................................................... 67
Mno(cid:285)enie ............................................................................................................ 67
Wy(cid:258)wietlanie wielu warto(cid:258)ci ............................................................................. 67
Wiele funkcji ......................................................................................................................... 68
Usuwanie b(cid:239)(cid:218)dów ................................................................................................................ 69
B(cid:239)(cid:218)dy sk(cid:239)adniowe ............................................................................................... 70
B(cid:239)(cid:218)dy semantyczne ............................................................................................ 71
Stan programu .................................................................................................... 72
S(cid:239)owa kluczowe ................................................................................................................... 73
Kluczowe zagadnienia ........................................................................................................ 74
Podsumowanie rozdzia(cid:239)u .................................................................................................. 74
Pytania sprawdzaj(cid:200)ce ......................................................................................................... 75
(cid:109)wiczenia .............................................................................................................................. 76
Rozdzia(cid:239) 3. Dane w C ..................................................................................................................... 79
Program przyk(cid:239)adowy ........................................................................................................ 79
Co nowego? ......................................................................................................... 81
Zmienne i sta(cid:239)e ..................................................................................................................... 82
S(cid:239)owa kluczowe typów danych ........................................................................................ 83
Typy ca(cid:239)kowite a typy zmiennoprzecinkowe ................................................... 84
Liczba ca(cid:239)kowita ................................................................................................. 85
Liczba zmiennoprzecinkowa ............................................................................. 85
Poleć książkęKup książkę
SPIS TRE(cid:165)CI
77
Typy danych w C ................................................................................................................ 86
Typ int ................................................................................................................ 86
Inne typy ca(cid:239)kowite ............................................................................................ 91
Korzystanie ze znaków — typ char ................................................................... 96
Typ _Bool .......................................................................................................... 102
Typy przeno(cid:258)ne ................................................................................................ 102
Typy float, double, long double ...................................................................... 105
Typy zespolone i urojone ................................................................................. 110
Inne typy ........................................................................................................... 111
Rozmiary typów ............................................................................................... 113
Korzystanie z typów danych ........................................................................................... 114
Uwaga na argumenty ....................................................................................................... 115
Jeszcze jeden przyk(cid:239)ad ..................................................................................................... 117
Co si(cid:218) dzieje? .................................................................................................... 117
Bufor wyj(cid:258)cia .................................................................................................... 118
Kluczowe zagadnienia ...................................................................................................... 119
Podsumowanie rozdzia(cid:239)u ................................................................................................ 119
Pytania sprawdzaj(cid:200)ce ....................................................................................................... 120
(cid:109)wiczenia ............................................................................................................................ 122
Rozdzia(cid:239) 4. (cid:146)a(cid:241)cuchy znakowe i formatowane wej(cid:258)cie-wyj(cid:258)cie ........................................... 125
Na pocz(cid:200)tek... program .................................................................................................... 126
(cid:146)a(cid:241)cuchy znakowe. Wprowadzenie .............................................................................. 127
Tablice typu char i znak zerowy ..................................................................... 127
Korzystanie z (cid:239)a(cid:241)cuchów ................................................................................. 128
Funkcja strlen() ................................................................................................ 130
Sta(cid:239)e i preprocesor C ......................................................................................................... 132
Modyfikator const ............................................................................................ 135
Sta(cid:239)e standardowe ............................................................................................ 136
Pozna(cid:202) i wykorzysta(cid:202) printf() i scanf() ........................................................................... 138
Funkcja printf() ................................................................................................ 138
Korzystanie z printf() ....................................................................................... 139
Modyfikatory specyfikatorów konwersji dla printf() ...................................... 141
Znaczenie konwersji ........................................................................................ 147
Korzystanie z funkcji scanf() ........................................................................... 154
Modyfikator * w funkcjach printf() i scanf() ................................................... 160
Praktyczne wskazówki ..................................................................................... 161
Kluczowe zagadnienia ...................................................................................................... 163
Podsumowanie rozdzia(cid:239)u ................................................................................................ 164
Pytania sprawdzaj(cid:200)ce ....................................................................................................... 164
(cid:109)wiczenia ............................................................................................................................ 167
Rozdzia(cid:239) 5. Operatory, wyra(cid:285)enia i instrukcje ......................................................................... 169
Wst(cid:218)p do p(cid:218)tli .................................................................................................................... 170
Podstawowe operatory ..................................................................................................... 172
Operator przypisania: = .................................................................................. 172
Operator dodawania: + .................................................................................... 175
Poleć książkęKup książkę8
J(cid:125)ZYK C. SZKO(cid:146)A PROGRAMOWANIA
Operator odejmowania: - ................................................................................. 176
Operatory znaku: - i + ..................................................................................... 176
Operator mno(cid:285)enia: * ....................................................................................... 177
Operator dzielenia: / ......................................................................................... 179
Priorytet operatorów ........................................................................................ 180
Priorytet i kolejno(cid:258)(cid:202) oblicze(cid:241) .......................................................................... 182
Niektóre inne operatory ................................................................................................... 183
Operator sizeof i typ size_t .............................................................................. 183
Operator modulo: ......................................................................................... 184
Operatory inkrementacji i dekrementacji: ++ i -- ......................................... 186
Dekrementacja -- .............................................................................................. 190
Priorytet ............................................................................................................ 191
Nie próbuj by(cid:202) zbyt sprytny ............................................................................ 191
Wyra(cid:285)enia i instrukcje ...................................................................................................... 193
Wyra(cid:285)enia ......................................................................................................... 193
Instrukcje .......................................................................................................... 194
Instrukcje z(cid:239)o(cid:285)one (bloki) ................................................................................ 197
Konwersje typów .............................................................................................................. 199
Operator rzutowania ........................................................................................ 202
Funkcje z argumentami .................................................................................................... 203
Przyk(cid:239)adowy program ...................................................................................................... 206
Zagadnienia kluczowe ...................................................................................................... 207
Podsumowanie rozdzia(cid:239)u ................................................................................................ 208
Pytania sprawdzaj(cid:200)ce ....................................................................................................... 209
(cid:109)wiczenia ............................................................................................................................ 212
Rozdzia(cid:239) 6. Instrukcje steruj(cid:200)ce C. P(cid:218)tle .................................................................................... 215
Wracamy do p(cid:218)tli while ................................................................................................... 216
Komentarz ........................................................................................................ 217
P(cid:218)tla odczytuj(cid:200)ca w stylu C ............................................................................. 219
Instrukcja while ................................................................................................................. 219
Zako(cid:241)czenie p(cid:218)tli while ................................................................................... 220
Kiedy ko(cid:241)czy si(cid:218) p(cid:218)tla? .................................................................................... 220
while jako p(cid:218)tla z warunkiem wej(cid:258)cia ............................................................ 221
Wskazówki dotycz(cid:200)ce sk(cid:239)adni ......................................................................... 222
Co jest wi(cid:218)ksze? Korzystanie z operatorów i wyra(cid:285)e(cid:241) relacyjnych ......................... 223
Czym jest prawda? ........................................................................................... 225
Co jeszcze jest prawd(cid:200)? .................................................................................... 226
Problemy z prawd(cid:200) .......................................................................................... 227
Nowy typ _Bool ................................................................................................ 229
Priorytet operatorów relacyjnych .................................................................... 231
P(cid:218)tle nieokre(cid:258)lone i p(cid:218)tle licz(cid:200)ce ..................................................................................... 232
P(cid:218)tla for ............................................................................................................................... 234
Elastyczno(cid:258)(cid:202) p(cid:218)tli for ....................................................................................... 235
Inne operatory przypisania: +=, -=, *=, /=, = ....................................................... 239
Poleć książkęKup książkę
SPIS TRE(cid:165)CI
99
Operator przecinkowy: , .................................................................................................. 241
Zenon z Elei kontra p(cid:218)tla for ........................................................................... 244
P(cid:218)tla z warunkiem wyj(cid:258)cia — do while ......................................................................... 245
Której p(cid:218)tli u(cid:285)y(cid:202)? ............................................................................................................... 248
P(cid:218)tle zagnie(cid:285)d(cid:285)one ........................................................................................................... 249
Omówienie ....................................................................................................... 250
Inny wariant ..................................................................................................... 250
Tablice .................................................................................................................................. 251
Wspó(cid:239)praca tablicy i p(cid:218)tli for .......................................................................... 252
Przyk(cid:239)ad wykorzystuj(cid:200)cy p(cid:218)tl(cid:218) i warto(cid:258)(cid:202) zwracan(cid:200) przez funkcj(cid:218) .......................... 254
Omówienie programu ...................................................................................... 257
Korzystanie z funkcji zwracaj(cid:200)cych warto(cid:258)ci ................................................. 258
Zagadnienia kluczowe ...................................................................................................... 258
Podsumowanie rozdzia(cid:239)u ................................................................................................ 259
Pytania sprawdzaj(cid:200)ce ....................................................................................................... 260
(cid:109)wiczenia ............................................................................................................................ 264
Rozdzia(cid:239) 7. Instrukcje steruj(cid:200)ce C. Rozga(cid:239)(cid:218)zienia i skoki .......................................................... 269
Instrukcja if ......................................................................................................................... 270
Dodajemy else .................................................................................................................... 272
Kolejny przyk(cid:239)ad: funkcje getchar() i putchar() .............................................. 273
Rodzina funkcji znakowych ctype.h ............................................................... 276
Wybór spo(cid:258)ród wielu mo(cid:285)liwo(cid:258)ci — else if .................................................... 278
(cid:146)(cid:200)czenie else z if .............................................................................................. 281
Wi(cid:218)cej o zagnie(cid:285)d(cid:285)onych instrukcjach if ........................................................ 283
B(cid:200)d(cid:283)my logiczni ................................................................................................................ 287
Zapis alternatywny — plik nag(cid:239)ówkowy iso646.h ......................................... 289
Priorytet ............................................................................................................ 289
Kolejno(cid:258)(cid:202) oblicze(cid:241) ........................................................................................... 290
Zakresy ............................................................................................................. 291
Program licz(cid:200)cy s(cid:239)owa ...................................................................................................... 292
Operator warunkowy: ?: .................................................................................................. 296
Dodatki do p(cid:218)tli — continue i break .............................................................................. 298
Instrukcja continue .......................................................................................... 298
Instrukcja break ................................................................................................ 301
Wybór spo(cid:258)ród wielu mo(cid:285)liwo(cid:258)ci — switch i break .................................................... 304
Korzystanie z instrukcji switch ....................................................................... 305
Pobieranie tylko pierwszego znaku w wierszu ............................................... 307
Etykiety wielokrotne ........................................................................................ 308
Switch a if else ................................................................................................. 309
Instrukcja goto ................................................................................................................... 311
Unikanie goto ................................................................................................... 311
Kluczowe zagadnienia ...................................................................................................... 314
Podsumowanie rozdzia(cid:239)u ................................................................................................ 315
Pytania sprawdzaj(cid:200)ce ....................................................................................................... 316
(cid:109)wiczenia ............................................................................................................................ 319
Poleć książkęKup książkę10
J(cid:125)ZYK C. SZKO(cid:146)A PROGRAMOWANIA
Rozdzia(cid:239) 8. Znakowe wej(cid:258)cie-wyj(cid:258)cie i przekierowywanie ................................................... 323
Jednoznakowe we-wy — getchar() i putchar() ............................................................ 324
Bufory .................................................................................................................................. 325
Ko(cid:241)czenie danych wprowadzanych z klawiatury ...................................................... 327
Pliki, strumienie i dane wprowadzane z klawiatury ...................................... 327
Koniec pliku ..................................................................................................... 329
Przekierowywanie a pliki ................................................................................................. 332
Przekierowywanie w systemach UNIX, Linux i Windows ............................ 332
Tworzenie przyja(cid:283)niejszego interfejsu u(cid:285)ytkownika ................................................. 337
Wspó(cid:239)praca z buforowanym wej(cid:258)ciem ........................................................... 337
(cid:146)(cid:200)czenie wej(cid:258)cia liczbowego i znakowego ..................................................... 340
Sprawdzanie poprawno(cid:258)ci danych wej(cid:258)ciowych ........................................................ 343
Analiza programu ............................................................................................. 347
Strumienie wej(cid:258)ciowe a liczby ........................................................................ 348
Menu .................................................................................................................................... 349
Zadania ............................................................................................................. 349
W kierunku sprawnego dzia(cid:239)ania .................................................................... 350
(cid:146)(cid:200)czenie danych znakowych i numerycznych ............................................... 352
Zagadnienia kluczowe ...................................................................................................... 355
Podsumowanie rozdzia(cid:239)u ................................................................................................ 356
Pytania sprawdzaj(cid:200)ce ....................................................................................................... 356
(cid:109)wiczenia ............................................................................................................................ 357
Rozdzia(cid:239) 9. Funkcje ....................................................................................................................... 361
Przypomnienie ................................................................................................................... 361
Tworzenie i wykorzystanie prostej funkcji ..................................................... 363
Analiza programu ............................................................................................. 363
Argumenty funkcji ........................................................................................... 366
Definiowanie funkcji pobieraj(cid:200)cej argument — argumenty formalne ........... 368
Prototyp funkcji pobieraj(cid:200)cej argumenty ........................................................ 369
Wywo(cid:239)ywanie funkcji pobieraj(cid:200)cej argumenty — argumenty faktyczne ........ 369
Punkt widzenia czarnej skrzynki .................................................................... 370
Zwracanie warto(cid:258)ci z wykorzystaniem instrukcji return ............................... 371
Typy funkcji ..................................................................................................... 373
Prototypy ANSI C .............................................................................................................. 375
Problem ............................................................................................................. 375
ANSI C na ratunek! .......................................................................................... 376
Brak argumentów a argumenty nieokre(cid:258)lone ................................................. 377
Pot(cid:218)ga prototypów ............................................................................................ 378
Rekurencja .......................................................................................................................... 379
Rekurencja bez tajemnic .................................................................................. 379
Podstawy rekurencji ......................................................................................... 380
Rekurencja ko(cid:241)cowa ........................................................................................ 382
Rekurencja i odwracanie kolejno(cid:258)ci dzia(cid:239)a(cid:241) ................................................... 384
Za i przeciw rekurencji .................................................................................... 386
Poleć książkęKup książkę
SPIS TRE(cid:165)CI
111
Kompilowanie programów zawieraj(cid:200)cych wi(cid:218)cej ni(cid:285) jedn(cid:200) funkcj(cid:218) ....................... 387
Unix .................................................................................................................. 387
Linux ................................................................................................................. 388
DOS (kompilatory wiersza polece(cid:241)) ................................................................ 388
(cid:165)rodowiska IDE dla Windows i OS X ............................................................. 388
Korzystanie z plików nag(cid:239)ówkowych .............................................................. 388
Uzyskiwanie adresów: operator ................................................................................. 392
Modyfikacja zmiennych w funkcji wywo(cid:239)uj(cid:200)cej ......................................................... 394
Wska(cid:283)niki: pierwsze spojrzenie ...................................................................................... 396
Operator dereferencji: * ................................................................................... 396
Deklarowanie wska(cid:283)ników .............................................................................. 396
Wykorzystanie wska(cid:283)ników do komunikacji pomi(cid:218)dzy funkcjami .............. 398
Kluczowe zagadnienia ...................................................................................................... 402
Podsumowanie rozdzia(cid:239)u ................................................................................................ 403
Pytania sprawdzaj(cid:200)ce ....................................................................................................... 403
(cid:109)wiczenia ............................................................................................................................ 404
Rozdzia(cid:239) 10. Tablice i wska(cid:283)niki ................................................................................................. 407
Tablice .................................................................................................................................. 407
Inicjalizacja ....................................................................................................... 408
Oznaczona inicjalizacja (C99) ......................................................................... 412
Przypisywanie warto(cid:258)ci do tablic .................................................................... 414
Zakres tablic ..................................................................................................... 414
Okre(cid:258)lanie rozmiaru tablicy ............................................................................ 416
Tablice wielowymiarowe ................................................................................................. 417
Inicjalizacja tablicy dwuwymiarowej .............................................................. 420
Wi(cid:218)cej wymiarów ............................................................................................. 421
Wska(cid:283)niki do tablic ........................................................................................................... 422
Funkcje, tablice i wska(cid:283)niki ............................................................................................. 425
Korzystanie z parametrów wska(cid:283)nikowych .................................................... 428
Komentarz — wska(cid:283)niki i tablice .................................................................... 430
Dzia(cid:239)ania na wska(cid:283)nikach ................................................................................................ 430
Ochrona zawarto(cid:258)ci tablicy .............................................................................................. 435
Zastosowanie s(cid:239)owa kluczowego const w parametrach formalnych ............. 436
Wi(cid:218)cej o const .................................................................................................. 437
Wska(cid:283)niki a tablice wielowymiarowe ............................................................................ 439
Wska(cid:283)niki do tablic wielowymiarowych ........................................................ 442
Zgodno(cid:258)(cid:202) wska(cid:283)ników ..................................................................................... 444
Funkcje a tablice wielowymiarowe ................................................................. 446
Tablice o zmiennym rozmiarze (VLA, ang. variable — length array) ...................... 449
Litera(cid:239)y z(cid:239)o(cid:285)one ................................................................................................................. 453
Zagadnienia kluczowe ...................................................................................................... 456
Podsumowanie rozdzia(cid:239)u ................................................................................................ 456
Pytania sprawdzaj(cid:200)ce ....................................................................................................... 458
(cid:109)wiczenia ............................................................................................................................ 460
Poleć książkęKup książkę12
J(cid:125)ZYK C. SZKO(cid:146)A PROGRAMOWANIA
Rozdzia(cid:239) 11. (cid:146)a(cid:241)cuchy znakowe i funkcje (cid:239)a(cid:241)cuchowe ......................................................... 463
Reprezentacja (cid:239)a(cid:241)cuchów i (cid:239)a(cid:241)cuchowe wej(cid:258)cie-wyj(cid:258)cie ........................................... 463
Definiowanie (cid:239)a(cid:241)cuchów ................................................................................. 464
Wska(cid:283)niki a (cid:239)a(cid:241)cuchy ...................................................................................... 473
Wczytywanie (cid:239)a(cid:241)cuchów ................................................................................................. 475
Tworzenie miejsca ........................................................................................... 475
Nies(cid:239)awna funkcja gets() .................................................................................. 475
Alternatywy dla funkcji gets() ......................................................................... 477
Funkcja scanf() ................................................................................................. 484
Wy(cid:258)wietlanie (cid:239)a(cid:241)cuchów ................................................................................................. 486
Funkcja puts() ................................................................................................... 486
Funkcja fputs() .................................................................................................. 488
Funkcja printf() ................................................................................................ 488
Zrób to sam ......................................................................................................................... 489
Funkcje (cid:239)a(cid:241)cuchowe ......................................................................................................... 491
Funkcja strlen() ................................................................................................ 492
Funkcja strcat() ................................................................................................. 493
Funkcja strncat() ............................................................................................... 495
Funkcja strcmp() .............................................................................................. 496
Funkcje strcpy() i strncpy() .............................................................................. 503
Funkcja sprintf() ............................................................................................... 508
Inne funkcje (cid:239)a(cid:241)cuchowe ................................................................................. 509
Przyk(cid:239)ad u(cid:285)ycia. Sortowanie (cid:239)a(cid:241)cuchów ....................................................................... 512
Sortowanie wska(cid:283)ników zamiast (cid:239)a(cid:241)cuchów ................................................. 513
Algorytm sortowania przez selekcj(cid:218) ................................................................ 514
(cid:146)a(cid:241)cuchy a funkcje znakowe z rodziny ctype.h .......................................................... 515
Argumenty wiersza polece(cid:241) ............................................................................................ 517
Argumenty wiersza polece(cid:241) w (cid:258)rodowiskach zintegrowanych ..................... 519
Argumenty linii polece(cid:241) w systemie Macintosh ............................................ 520
Konwersja (cid:239)a(cid:241)cuchów do liczb ........................................................................................ 520
Zagadnienia kluczowe ...................................................................................................... 523
Podsumowanie rozdzia(cid:239)u ................................................................................................ 524
Pytania sprawdzaj(cid:200)ce ....................................................................................................... 525
(cid:109)wiczenia ............................................................................................................................ 528
Rozdzia(cid:239) 12. Klasy zmiennej, (cid:239)(cid:200)czno(cid:258)(cid:202) i zarz(cid:200)dzanie pami(cid:218)ci(cid:200) ............................................. 531
Klasy zmiennych ............................................................................................................... 532
Zasi(cid:218)g zmiennej ................................................................................................ 533
(cid:146)(cid:200)czno(cid:258)(cid:202) zmiennej ........................................................................................... 535
Czas trwania zmiennej ..................................................................................... 537
Zmienne automatyczne ................................................................................... 538
Zmienne rejestrowe .......................................................................................... 543
Zmienne statyczne o zasi(cid:218)gu blokowym ........................................................ 543
Zmienne statyczne o (cid:239)(cid:200)czno(cid:258)ci zewn(cid:218)trznej ................................................... 545
Zmienne statyczne o (cid:239)(cid:200)czno(cid:258)ci wewn(cid:218)trznej ................................................. 550
Programy wieloplikowe ................................................................................... 551
Poleć książkęKup książkę
SPIS TRE(cid:165)CI
113
Specyfikatory klasy zmiennych — podsumowanie ....................................... 551
Klasy zmiennych a funkcje .............................................................................. 554
Któr(cid:200) klas(cid:218) wybra(cid:202)? ......................................................................................... 555
Funkcje pseudolosowe i zmienne statyczne ................................................................. 555
Rzut kostk(cid:200) ......................................................................................................................... 559
Przydzia(cid:239) pami(cid:218)ci. Funkcje malloc() i free() .................................................................. 563
Znaczenie funkcji free() ................................................................................... 568
Funkcja calloc() ................................................................................................ 568
Dynamiczny przydzia(cid:239) pami(cid:218)ci a tablice o zmiennym rozmiarze ................. 569
Klasy zmiennych a dynamiczny przydzia(cid:239) pami(cid:218)ci ....................................... 570
Kwalifikatory typu ANSI C .............................................................................................. 572
Kwalifikator typu const .................................................................................... 572
Kwalifikator typu volatile ................................................................................ 575
Kwalifikator typu restrict ................................................................................. 576
Kwalifikator _Atomic (C11) ............................................................................. 577
Stare s(cid:239)owa kluczowe w nowych miejscach ................................................... 578
Kluczowe zagadnienia ...................................................................................................... 579
Podsumowanie rozdzia(cid:239)u ................................................................................................ 579
Pytania sprawdzaj(cid:200)ce ....................................................................................................... 581
(cid:109)wiczenia ............................................................................................................................ 582
Rozdzia(cid:239) 13. Obs(cid:239)uga plików ....................................................................................................... 587
Wymiana informacji z plikami ........................................................................................ 587
Czym jest plik? ................................................................................................. 588
Poziomy wej(cid:258)cia-wyj(cid:258)cia ................................................................................. 590
Pliki standardowe ............................................................................................. 590
Standardowe wej(cid:258)cie-wyj(cid:258)cie .......................................................................................... 591
Sprawdzanie argumentów wiersza polece(cid:241) .................................................... 592
Funkcja fopen() ................................................................................................ 593
Funkcje getc() i putc() ...................................................................................... 595
Znak ko(cid:241)ca pliku EOF (ang. end of file) ......................................................... 595
Funkcja fclose() ................................................................................................ 596
Wska(cid:283)niki do plików standardowych ............................................................. 597
Niewyszukany program kompresuj(cid:200)cy pliki ............................................................... 597
Plikowe wej(cid:258)cie-wyj(cid:258)cie — fprintf(), fscanf(), fgets() i fputs() .................................... 599
Funkcje fprintf() i fscanf() ................................................................................ 599
Funkcje fgets() i fputs() .................................................................................... 601
Przygody z dost(cid:218)pem swobodnym — fseek() i ftell() ................................................. 602
Jak dzia(cid:239)aj(cid:200) funkcje fseek() i ftell()? ................................................................. 603
Tryb binarny a tryb tekstowy .......................................................................... 604
Przeno(cid:258)no(cid:258)(cid:202) ...................................................................................................... 605
Funkcje fgetpos() i fsetpos() ............................................................................. 606
Za kulisami standardowego wej(cid:258)cia-wyj(cid:258)cia ................................................................ 606
Inne standardowe funkcje wej(cid:258)cia-wyj(cid:258)cia ................................................................... 607
Funkcja int ungetc() ......................................................................................... 608
Funkcja int fflush() ........................................................................................... 608
Funkcja int setvbuf() ........................................................................................ 608
Poleć książkęKup książkę14
J(cid:125)ZYK C. SZKO(cid:146)A PROGRAMOWANIA
Binarne wej(cid:258)cie-wyj(cid:258)cie: fread() i fwrite() ...................................................... 609
Funkcja size_t fwrite() ...................................................................................... 611
Funkcja size_t fread() ....................................................................................... 611
Funkcje int feof(FILE *fp) oraz int ferror(FILE *fp) ....................................... 612
Przyk(cid:239)ad ............................................................................................................ 612
Dost(cid:218)p swobodny w binarnym wej(cid:258)ciu-wyj(cid:258)ciu ............................................ 615
Zagadnienia kluczowe ...................................................................................................... 617
Podsumowanie rozdzia(cid:239)u ................................................................................................ 618
Pytania sprawdzaj(cid:200)ce ....................................................................................................... 619
(cid:109)wiczenia ............................................................................................................................ 621
Rozdzia(cid:239) 14. Struktury i inne formy danych ............................................................................ 625
Przyk(cid:239)adowy problem. Tworzenie spisu ksi(cid:200)(cid:285)ek ......................................................... 626
Deklaracja struktury .......................................................................................................... 627
Definiowanie zmiennej strukturalnej ............................................................................ 628
Inicjalizacja struktury ...................................................................................... 630
Odwo(cid:239)ania do sk(cid:239)adników struktury ............................................................... 630
Inicjalizatory oznaczone struktur .................................................................... 631
Tablice struktur .................................................................................................................. 632
Deklarowanie tablicy struktur ......................................................................... 634
Wskazywanie sk(cid:239)adników tablicy struktur ..................................................... 634
Szczegó(cid:239)y programu ......................................................................................... 635
Struktury zagnie(cid:285)d(cid:285)one ................................................................................................... 636
Wska(cid:283)niki do struktur ...................................................................................................... 638
Deklaracja i inicjalizacja wska(cid:283)nika do struktury .......................................... 639
Dost(cid:218)p do sk(cid:239)adników za pomoc(cid:200) wska(cid:283)nika ................................................. 640
Struktury a funkcje ............................................................................................................ 641
Przekazywanie sk(cid:239)adników struktur ............................................................... 641
Korzystanie z adresu struktury ........................................................................ 642
Przekazywanie struktury jako argumentu ...................................................... 643
Wi(cid:218)cej o nowym, ulepszonym statusie struktury ........................................... 644
Struktury czy wska(cid:283)niki do struktur? ............................................................. 648
Tablice znakowe lub wska(cid:283)niki do znaków w strukturze ............................. 649
Struktury, wska(cid:283)niki i funkcja malloc() .......................................................... 650
Litera(cid:239)y z(cid:239)o(cid:285)one i struktury (C99) ................................................................... 652
Elastyczne sk(cid:239)adniki tablicowe (C99) ............................................................. 654
Struktury anonimowe (C11) ............................................................................ 657
Funkcje korzystaj(cid:200)ce z tablic struktur ............................................................ 657
Zapisywanie zawarto(cid:258)ci struktury w pliku ................................................................... 659
Przyk(cid:239)ad zapisu struktury ................................................................................ 660
Omówienie programu ...................................................................................... 663
Struktury. Co dalej? .......................................................................................................... 664
Unie. Szybkie spojrzenie .................................................................................................. 665
Wykorzystywanie unii ..................................................................................... 666
Unie anonimowe (C11) .................................................................................... 667
Poleć książkęKup książkę
SPIS TRE(cid:165)CI
115
Typy wyliczeniowe ........................................................................................................... 669
Sta(cid:239)e enum ........................................................................................................ 670
Warto(cid:258)ci domy(cid:258)lne ........................................................................................... 670
Przypisywane warto(cid:258)ci .................................................................................... 670
U(cid:285)ycie enum ..................................................................................................... 670
Wspó(cid:225)dzielona przestrze(cid:241) nazw ...................................................................... 672
typedef: szybkie spojrzenie ............................................................................................. 673
Udziwnione deklaracje ..................................................................................................... 675
Funkcje a wska(cid:283)niki .......................................................................................................... 677
Kluczowe zagadnienia ...................................................................................................... 684
Podsumowanie rozdzia(cid:239)u ................................................................................................ 685
Pytania sprawdzaj(cid:200)ce ....................................................................................................... 686
(cid:109)wiczenia ............................................................................................................................ 689
Rozdzia(cid:239) 15. Manipulowanie bitami .......................................................................................... 693
Liczby binarne, bity i bajty ............................................................................................... 694
Binarne liczby ca(cid:239)kowite ................................................................................. 694
Liczby ca(cid:239)kowite ze znakiem ........................................................................... 695
Binarne liczby zmiennoprzecinkowe .............................................................. 696
Inne systemy liczbowe ...................................................................................................... 697
System ósemkowy ............................................................................................ 697
System szesnastkowy ....................................................................................... 698
Operatory bitowe .............................................................................................................. 698
Bitowe operatory logiczne ............................................................................... 699
Zastosowanie. Maski ........................................................................................ 701
Zastosowanie. Ustawianie bitów (w(cid:239)(cid:200)czanie bitów) ...................................... 702
Zastosowanie. Zerowanie bitów (wy(cid:239)(cid:200)czanie bitów) ..................................... 702
Zastosowanie. Odwracanie bitów ................................................................... 703
Zastosowanie. Sprawdzenie warto(cid:258)ci bitu ..................................................... 703
Bitowe operatory przesuni(cid:218)cia ........................................................................ 704
Przyk(cid:239)ad ............................................................................................................ 706
Kolejny przyk(cid:239)ad .............................................................................................. 708
Pola bitowe ......................................................................................................................... 710
Przyk(cid:239)ad ............................................................................................................ 711
Pola bitowe a operatory bitowe ....................................................................... 715
Mechanizmy wyrównania danych (C11) ........................................................ 722
Kluczowe zagadnienia ...................................................................................................... 724
Podsumowanie rozdzia(cid:239)u ................................................................................................ 725
Pytania sprawdzaj(cid:200)ce ....................................................................................................... 726
(cid:109)wiczenia ............................................................................................................................ 727
Rozdzia(cid:239) 16. Preprocesor i biblioteka C ..................................................................................... 731
Pierwsze kroki w translacji programu ........................................................................... 732
Sta(cid:239)e symboliczne. #define .............................................................................................. 733
Tokeny .............................................................................................................. 737
Przedefiniowywanie sta(cid:239)ych ............................................................................ 737
Poleć książkęKup książkę16
J(cid:125)ZYK C. SZKO(cid:146)A PROGRAMOWANIA
#define i argumenty ......................................................................................................... 738
Argumenty makr w (cid:239)a(cid:241)cuchach ...................................................................... 741
(cid:146)(cid:200)cznik preprocesora. Operator ## ................................................................ 742
Makra o zmiennej liczbie argumentów: ... i __VA_ARGS__ .......................... 743
Makro czy funkcja? ........................................................................................................... 744
Do(cid:239)(cid:200)czanie plików. #include .......................................................................................... 746
Pliki nag(cid:239)ówkowe. Przyk(cid:239)ad ............................................................................ 747
Zastosowania plików nag(cid:239)ówkowych ............................................................. 749
Inne dyrektywy ................................................................................................................. 750
Dyrektywa #undef ........................................................................................... 750
Zdefiniowany. Z perspektywy preprocesora C ............................................... 751
Kompilacja warunkowa ................................................................................... 751
Makra predefiniowane ..................................................................................... 756
#line i #error ................................................................................................... 757
#pragma ........................................................................................................... 758
S(cid:239)owo kluczowe _Generic (C11) ...................................................................... 759
Funkcje wplatane (C99) .................................................................................................... 761
Funkcje bezpowrotne (C11) ............................................................................................. 764
Biblioteka j(cid:218)zyka C ............................................................................................................ 764
Uzyskiwanie dost(cid:218)pu do biblioteki C ............................................................. 764
Korzystanie z opisów funkcji ........................................................................... 765
Biblioteka funkcji matematycznych ............................................................................... 767
Odrobina trygonometrii ................................................................................... 768
Warianty typów zmiennoprzecinkowych ....................................................... 770
Biblioteka tgmath.h (C99) ................................................................................ 771
Biblioteka narz(cid:218)dzi ogólnego u(cid:285)ytku ............................................................................. 772
Funkcje exit() i atexit() ..................................................................................... 773
Funkcja qsort() .................................................................................................. 775
Biblioteka assert.h ..................................
Pobierz darmowy fragment (pdf)
Gdzie kupić całą publikację:
Opinie na temat publikacji:
Inne popularne pozycje z tej kategorii:
Czytaj również:
Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką :