[Wikibooks] Programowanie w C [PL, Język C - Tutoriale
[ Pobierz całość w formacie PDF ]
Programowanie w C
Stworzone na Wikibooks,
bibliotece wolny podręczników.
Wersja . z dnia listopada
Copyright
- użytkownicy Wikibooks.
Udziela się zezwolenia do kopiowania, rozpowszechniania lub modyfikacji tego dokumentu
zgodnie z zasadami
Licencji Creative Commons Uznanie autorstwa-Na ty samy warunka
. Unported
lub dowolnej późniejszej wersji licencji opublikowanej przez Creative Com-
mons, która zawiera te same elementy co niniejsza licencja.
Tekst licencji można znaleźć na stronie
Wikibooks nie udziela żadnych gwarancji, zapewnień ani obietnic dotyczących poprawności
publikowanych treści. Nie udziela też żadnych innych gwarancji, zarówno jednoznacznych,
jak i dorozumianych.
'
Spis tre
´
sci
O podręczniku
. O czym mówi ten podręcznik?
. . . . . . . . . . . . . . . . . . . . . . . . . . 11
. Co trzeba wiedzieć, żeby skorzystać z niniejszego podręcznika?
. . . . . . . . 11
. Konwencje przyjęte w tym podręczniku
. . . . . . . . . . . . . . . . . . . . . 11
. Czy mogę pomóc?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
. Autorzy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
. Źródła
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
O języku C
. Historia C
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
. Zastosowania języka C
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
. Przyszłość C
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Czego potrzebujesz
. Czego potrzebujesz
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
. Zintegrowane Środowiska Programistyczne
. . . . . . . . . . . . . . . . . . . 18
. Dodatkowe narzędzia
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Używanie kompilatora
. GCC
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
. Borland
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
. Czytanie komunikatów o błędach
. . . . . . . . . . . . . . . . . . . . . . . . 20
Pierwszy program
. Twój pierwszy program
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
. Rozwiązywanie problemów
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Podstawy
. Kompilacja: Jak działa C?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
. Co może C?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
. Struktura blokowa
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
. Zasięg
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
. Funkcje
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
. Biblioteki standardowe
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
. Komentarze i styl
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
. Preprocesor
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
. Nazwy zmiennych, stałych i funkcji
. . . . . . . . . . . . . . . . . . . . . . . 32
3
Zmienne
. Czym są zmienne?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
. Typy zmiennych
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
. Specyfikatory
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
. Modyfikatory
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
. Uwagi
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Operatory
. Przypisanie
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
. Rzutowanie
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
. Operatory arytmetyczne
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
. Operacje bitowe
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
. Porównanie
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
. Operatory logiczne
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
. Operator wyrażenia warunkowego
. . . . . . . . . . . . . . . . . . . . . . . 51
. Operator przecinek
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
. Operator sizeof
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
. Inne operatory
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
. Priorytety i kolejność obliczeń
. . . . . . . . . . . . . . . . . . . . . . . . . . 52
. Kolejność wyliczania argumentów operatora
. . . . . . . . . . . . . . . . . . 53
. Uwagi
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
. Zobacz też
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Instrukcje sterujące
. Instrukcje warunkowe
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
. Pętle
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
. Instrukcja goto
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
. Natychmiastowe kończenie programu — funkcja exit
. . . . . . . . . . . . . 65
. Uwagi
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Podstawowe procedury wejścia i wyjścia
. Wejście/wyjście
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
. Funkcje wyjścia
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
. Funkcja puts
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
. Funkcja fputs
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
. Funkcje wejścia
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Funkcje
. Tworzenie funkcji
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
. Wywoływanie
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
. Zwracanie wartości
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
. Zwracana wartość
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
. Funkcja main()
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
. Dalsze informacje
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
. Zobacz też
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Preprocesor
. Wstęp
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
. Dyrektywy preprocesora
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
. Predefiniowane makra
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4
Biblioteka standardowa
. Czym jest biblioteka?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
. Po co nam biblioteka standardowa?
. . . . . . . . . . . . . . . . . . . . . . . 97
. Gdzie są funkcje z biblioteki standardowej?
. . . . . . . . . . . . . . . . . . . 97
. Opis funkcji biblioteki standardowej
. . . . . . . . . . . . . . . . . . . . . . . 98
. Uwagi
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Czytanie i pisanie do plików
. Pojęcie pliku
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
. Identyfikacja pliku
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
. Podstawowa obsługa plików
. . . . . . . . . . . . . . . . . . . . . . . . . . . 99
. Rozmiar pliku
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
. Przykład — pliki graficzny
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
. Co z katalogami?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Ćwiczenia dla początkujący
. Ćwiczenia
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Tablice
. Wstęp
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
. Odczyt/zapis wartości do tablicy
. . . . . . . . . . . . . . . . . . . . . . . . . 109
. Tablice znaków
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
. Tablice wielowymiarowe
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
. Ograniczenia tablic
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
. Ciekawostki
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Wskaźniki
. Co to jest wskaźnik?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
. Operowanie na wskaźnikach
. . . . . . . . . . . . . . . . . . . . . . . . . . . 114
. Arytmetyka wskaźników
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
. Tablice a wskaźniki
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
. Gdy argument jest wskaźnikiem...
. . . . . . . . . . . . . . . . . . . . . . . . 119
. Pułapki wskaźników
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
. Na co wskazuje ?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
. Stałe wskaźniki
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
. Dynamiczna alokacja pamięci
. . . . . . . . . . . . . . . . . . . . . . . . . . 122
. Wskaźniki na funkcje
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
. Możliwe deklaracje wskaźników
. . . . . . . . . . . . . . . . . . . . . . . . . 127
. Popularne błędy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
. Ciekawostki
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Napisy
. Łańcuchy znaków w języku C
. . . . . . . . . . . . . . . . . . . . . . . . . . 129
. Operacje na łańcuchach
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
. Bezpieczeństwo kodu a łańcuchy
. . . . . . . . . . . . . . . . . . . . . . . . . 134
. Konwersje
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
. Operacje na znakach
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
. Częste błędy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
. Unicode
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
5
[ Pobierz całość w formacie PDF ]