Język C. WskaĽniki. Vademecum profesjonalisty.pdf

(824 KB) Pobierz
C:\Andrzej\PDF\ABC nagrywania p³yt CD\1 strona.cdr
IDZ DO
PRZYK£ADOW Y ROZDZIA£
Jêzyk C. Wskaniki.
Vademecum profesjonalisty
Autor: Kenneth A. Reek
T³umaczenie: Pawe³ Gonera
ISBN: 83-7361-198-3
Tytu³ orygina³ u: Pointers on C
Format: B5, stron: 544
Przyk³ady na ftp: 55 kB
SPIS TRECI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Ksi¹¿ka „Jêzyk C. Wskaniki. Vademecum profesjonalisty” przeznaczona jest dla
zaawansowanych studentów i profesjonalistów, zapewniaj¹c obszerne ród³o informacji
dla tych, którzy potrzebuj¹ dog³êbnego omówienia jêzyka C. Dok³adne wyjanienie
podstaw oraz przegl¹d zaawansowanych funkcji pozwala programistom skorzystaæ
z si³y wskaników w jêzyku C. Dok³adny opis idiomów programowych oraz gruntowna
dyskusja zaawansowanych tematów powoduje, ¿e ksi¹¿ka jest nieocenionym
podrêcznikiem i informatorem dla studentów i zawodowych programistów.
• Zawiera wszystko, co jest niezbêdne do dog³êbnego poznania jêzyka C
• Dok³adnie opisuje wskaniki, ich sk³adniê, techniki efektywnego u¿ycia
oraz czêsto stosowane idiomy programistyczne, w których wystêpuj¹ wskaniki
• Porównuje ró¿ne metody implementacji czêsto stosowanych abstrakcyjnych
typów danych
• Zawiera wskazówki na temat efektywnoci, przenonoci i zagadnieñ in¿ynierii
programowania, jak równie¿ ostrze¿enia o czêsto pope³nianych b³êdach
• Oferuje prosty, konwersacyjny styl, jasno opisuj¹cy trudne tematy, zawiera wiele
ilustracji i diagramów pomagaj¹cych z wizualizacji skomplikowanych zagadnieñ
• Opisuje wszystkie funkcje z biblioteki standardowej C.
O Autorze: Kenneth A. Reek jest Profesorem informatyki w Rochester Institute of
Technology i dowiadczonym programist¹, który pracowa³ w wielu firmach jako
konsultant. Ksi¹¿ka ta powsta³a po dziewiêciu latach prowadzenia seminariów
z programowania w C. Profesor Reek prowadzi³ zajêcia na podstawowym i rednim
poziomie z systemów operacyjnych, telekomunikacji, sieci komputerowych, analizy
algorytmów i systemów prze³¹czaj¹cych.
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
91675271.001.png 91675271.002.png 91675271.003.png
1.1. Wstp ..............................................................................................................................19
1.1.1. Odstpy i komentarze ............................................................................................22
1.1.2. Dyrektywy preprocesora........................................................................................23
1.1.3. Funkcja main .........................................................................................................24
1.1.4. Funkcja czytaj_zakresy_kolumn ...........................................................................27
1.1.5. Funkcja przeksztalc ...............................................................................................32
1.2. Inne mo$liwo%ci ..............................................................................................................35
1.3. Kompilacja......................................................................................................................35
1.4. Podsumowanie ................................................................................................................35
1.5. Podsumowanie ostrze$e( ................................................................................................36
1.6. Podsumowanie wskazówek ............................................................................................36
1.7. Pytania ............................................................................................................................37
1.8. ,wiczenia........................................................................................................................37
2.1. -rodowiska......................................................................................................................39
2.1.1. Translacja...............................................................................................................39
2.1.2. Wykonanie.............................................................................................................41
2.2. Zasady leksykalne...........................................................................................................42
2.2.1. Znaki......................................................................................................................42
2.2.2. Komentarze............................................................................................................44
2.2.3. Dowolna posta0 kodu 1ródłowego ........................................................................44
2.2.4. Identyfikatory ........................................................................................................45
2.2.5. Posta0 programu ....................................................................................................45
2.3. Styl programowania ........................................................................................................46
2.4. Podsumowanie ................................................................................................................47
2.5. Podsumowanie ostrze$e( ................................................................................................48
2.6. Podsumowanie wskazówek ............................................................................................48
2.7. Pytania ............................................................................................................................48
2.8. ,wiczenia........................................................................................................................50
3.1. Podstawowe typy danych................................................................................................51
3.1.1. Rodzina liczb całkowitych.....................................................................................51
3.1.2. Typy zmiennoprzecinkowe....................................................................................55
3.1.3. Wska1niki ..............................................................................................................56
3.2. Podstawowe deklaracje...................................................................................................58
3.2.1. Inicjalizacja............................................................................................................59
3.2.2. Deklarowanie prostych tablic ................................................................................59
 
6
Jzyk C. Wskaniki. Vademecum profesjonalisty
3.2.3. Deklaracja wska1ników.........................................................................................60
3.2.4. Niejawne deklaracje ..............................................................................................61
3.3. Typedef ...........................................................................................................................61
3.4. Stałe ................................................................................................................................62
3.5. Zasig..............................................................................................................................63
3.5.1. Zasig ograniczony do bloku.................................................................................64
3.5.2. Zasig ograniczony do pliku..................................................................................65
3.5.3. Zasig ograniczony do prototypu ..........................................................................65
3.5.4. Zasig ograniczony do funkcji ..............................................................................65
3.6. Sposób konsolidacji ........................................................................................................66
3.7. Klasa zapisu ....................................................................................................................67
3.7.1. Inicjalizacja............................................................................................................69
3.8. Słowo kluczowe static ....................................................................................................69
3.9. Przykład zasigu, rodzaju ł<czenia i klas zapisu...............................................................70
3.10. Podsumowanie ..............................................................................................................72
3.11. Podsumowanie ostrze$e( ..............................................................................................72
3.12. Podsumowanie wskazówek ..........................................................................................73
3.13. Pytania ..........................................................................................................................73
!"##
4.1. Instrukcja pusta ...............................................................................................................77
4.2. Instrukcja wyra$enia .......................................................................................................77
4.3. Instrukcja bloku ..............................................................................................................78
4.4. Instrukcja if .....................................................................................................................79
4.5. Instrukcja while...............................................................................................................80
4.5.1. Instrukcje break i continue ....................................................................................80
4.5.2. Działanie ptli while..............................................................................................81
4.6. Instrukcja for...................................................................................................................82
4.6.1. Wykonanie ptli for ...............................................................................................82
4.7. Instrukcja do ...................................................................................................................83
4.8. Instrukcja switch .............................................................................................................84
4.8.1. Instrukcja break w switch ......................................................................................85
4.8.2. Warto%ci domy%lne ................................................................................................86
4.8.3. Wykonanie instrukcji switch .................................................................................86
4.9. Instrukcja goto ................................................................................................................87
4.10. Podsumowanie ..............................................................................................................89
4.11. Podsumowanie ostrze$e( ..............................................................................................90
4.12. Podsumowanie wskazówek ..........................................................................................90
4.13. Pytania ..........................................................................................................................90
4.14. ,wiczenia......................................................................................................................92
$%
5.1. Operatory ........................................................................................................................95
5.1.1. Arytmetyka ............................................................................................................95
5.1.2. Przesunicia ...........................................................................................................95
5.1.3. Operatory bitowe ...................................................................................................97
5.1.4. Przypisania.............................................................................................................98
5.1.5. Operatory jednoargumentowe .............................................................................101
5.1.6. Operatory relacyjne .............................................................................................103
5.1.7. Operatory logiczne ..............................................................................................104
5.1.8. Operator warunkowy ...........................................................................................105
5.1.9. Operator przecinka ..............................................................................................105
5.1.10. Indeks, wywołanie funkcji i element struktury .................................................107
5.2. Warto%ci logiczne .........................................................................................................108
5.3. L-warto%ci i R-warto%ci ................................................................................................109
Spis treci
7
5.4. Obliczanie wyra$e(.......................................................................................................110
5.4.1. Niejawna konwersja typów .................................................................................110
5.4.2. Konwersje arytmetyczne .....................................................................................111
5.4.3. Wła%ciwo%ci operatorów......................................................................................112
5.4.4. Priorytety i kolejno%0 wykonywania ...................................................................114
5.5. Podsumowanie ..............................................................................................................116
5.6. Podsumowanie ostrze$e( ..............................................................................................118
5.7. Podsumowanie wskazówek ..........................................................................................118
5.8. Pytania ..........................................................................................................................118
5.9. ,wiczenia......................................................................................................................121
& '(
6.1. Pami0 i adresy .............................................................................................................123
6.1.1. Adresy i zawarto%0...............................................................................................124
6.2. Warto%ci i ich typy ........................................................................................................124
6.3. Zawarto%0 zmiennej wska1nikowej ..............................................................................126
6.4. Operator dereferencji ....................................................................................................126
6.5. Niezainicjowane i nieprawidłowe wska1niki ...............................................................128
6.6. Wska1nik NULL...........................................................................................................129
6.7. Wska1niki, dereferencja i L-warto%ci ...........................................................................130
6.8. Wska1niki, dereferencja i zmienne ...............................................................................131
6.9. Stałe wska1nikowe........................................................................................................131
6.10. Wska1niki do wska1ników .........................................................................................132
6.11. Operacje na wska1nikach............................................................................................133
6.12. Przykłady ....................................................................................................................138
6.13. Arytmetyka wska1ników ............................................................................................141
6.13.1. Operacje arytmetyczne ......................................................................................142
6.13.2. Operacje relacyjne .............................................................................................145
6.14. Podsumowanie ............................................................................................................146
6.15. Podsumowanie ostrze$e( ............................................................................................147
6.16. Podsumowanie wskazówek ........................................................................................147
6.17. Pytania ........................................................................................................................148
6.18. ,wiczenia....................................................................................................................150
# )"
7.1. Definicja funkcji ...........................................................................................................153
7.1.1. Instrukcja return...................................................................................................154
7.2. Deklaracje funkcji.........................................................................................................155
7.2.1. Prototypy .............................................................................................................155
7.2.2. Domy%lne zało$enia dla funkcji ..........................................................................158
7.3. Argumenty funkcji ........................................................................................................158
7.4. ATD i czarne skrzynki ..................................................................................................162
7.5. Rekurencja ....................................................................................................................164
7.5.1. -ledzenie funkcji rekurencyjnych .......................................................................166
7.5.2. Rekurencja a iteracja ...........................................................................................169
7.6. Zmienna lista argumentów............................................................................................172
7.6.1. Makra stdarg ........................................................................................................173
7.6.2. Ograniczenia zmiennej listy argumentów ...........................................................174
7.7. Podsumowanie ..............................................................................................................175
7.8. Podsumowanie ostrze$e( ..............................................................................................176
7.9. Podsumowanie wskazówek ..........................................................................................176
7.10. Pytania ........................................................................................................................177
7.11. ,wiczenia....................................................................................................................178
8
Jzyk C. Wskaniki. Vademecum profesjonalisty
* +,#
8.1. Tablice jednowymiarowe..............................................................................................179
8.1.1. Nazwy tablic ........................................................................................................179
8.1.2. Indeksy.................................................................................................................180
8.1.3. Wska1niki kontra indeksy ...................................................................................183
8.1.4. Efektywno%0 wska1ników ...................................................................................184
8.1.5. Tablice i wska1niki..............................................................................................190
8.1.6. Nazwy tablic i argumenty funkcji .......................................................................190
8.1.7. Deklarowanie parametrów tablicowych ..............................................................192
8.1.8. Inicjalizacja..........................................................................................................192
8.1.9. Niekompletne inicjalizacje ..................................................................................193
8.1.10. Automatyczne okre%lanie wielko%ci tablicy ......................................................194
8.1.11. Inicjalizacja tablicy znaków ..............................................................................194
8.2. Tablice wielowymiarowe..............................................................................................194
8.2.1. Kolejno%0 zapisu..................................................................................................195
8.2.2. Nazwy tablic ........................................................................................................196
8.2.3. Indeksy.................................................................................................................197
8.2.4. Wska1niki na tablice............................................................................................199
8.2.5. Tablice wielowymiarowe jako argumenty funkcji ..............................................200
8.2.6. Inicjalizacja..........................................................................................................201
8.2.7. Automatyczne okre%lanie wielko%ci tablic ..........................................................204
8.3. Tablice wska1ników .....................................................................................................204
8.4. Podsumowanie ..............................................................................................................207
8.5. Podsumowanie ostrze$e( ..............................................................................................208
8.6. Podsumowanie wskazówek ..........................................................................................209
8.7. Pytania ..........................................................................................................................209
8.8. ,wiczenia......................................................................................................................213
-./0
9.1. Ci<gi znaków — podstawy ...........................................................................................219
9.2. Długo%0 ci<gu ...............................................................................................................219
9.3. Nieograniczone funkcje operuj<ce na ci<gach................................................................221
9.3.1. Kopiowanie ci<gów .............................................................................................221
9.3.2. Ł<czenie ci<gów ..................................................................................................222
9.3.3. Warto%0 zwracana przez funkcj .........................................................................222
9.3.4. Porównywanie ci<gów.........................................................................................223
9.4. Funkcje operuj<ce na ci<gach o ograniczonej długo%ci ..................................................223
9.5. Proste wyszukiwanie w ci<gach ...................................................................................224
9.5.1. Wyszukiwanie znaków ........................................................................................225
9.5.2. Wyszukiwanie dowolnego z kilku znaków .........................................................225
9.5.3. Wyszukiwanie podci<gu......................................................................................225
9.6. Zaawansowane wyszukiwanie ci<gów .........................................................................227
9.6.1. Wyszukiwanie przedrostków w ci<gu .................................................................227
9.6.2. Wyszukiwanie tokenów.......................................................................................227
9.7. Komunikaty dotycz<ce błdów.....................................................................................229
9.8. Operacje na znakach .....................................................................................................229
9.8.1. Klasyfikacja znaków............................................................................................229
9.8.2. Transformacje znaków ........................................................................................230
9.9. Operacje na pamici......................................................................................................230
9.10. Podsumowanie ............................................................................................................232
9.11. Podsumowanie ostrze$e( ............................................................................................233
9.12. Podsumowanie wskazówek ........................................................................................233
9.13. Pytania ........................................................................................................................234
9.14. ,wiczenia....................................................................................................................234
Zgłoś jeśli naruszono regulamin