Programowanie w C, Dokumenty i opracowania, Informatyka, Programowanie w C

[ 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 ]