Grundkurs C: C-Programmierung verständlich erklärt (eBook) - Jürgen Wolf

Jürgen Wolf 

Grundkurs C: C-Programmierung verständlich erklärt (eBook)

eBook
 
Kopierschutz: Adobe-DRM
Nicht lieferbar
Nicht lieferbar
Bewerten Empfehlen Merken Auf Lieblingsliste


Andere Kunden interessierten sich auch für

Grundkurs C: C-Programmierung verständlich erklärt (eBook)

Dieser Grundkurs ist genau das Richtige für alle, die einen schnellen Einstieg in die Programmiersprache C und einen Überblick über die Grundlagen suchen. Ausführlich und jederzeit verständlich erklärt Jürgen Wolf alles, was notwendig ist, damit Sie mit C lernen und damit programmieren können. Hier bekommen Sie konzentriertes C-Wissen, mit übersichtlicher Darstellung aller wichtigen Sprachgrundlagen, mit Überblickstabellen zu Schlüsselwörtern und Standard-Headerdateien sowie einer Funktionsreferenz mit dem kompletten C99-Standard.
Übungen in drei Schwierigkeitsgraden am Ende jedes Kapitels helfen Einsteigern und vor allem Selbstlernern beim Verstehen der Sprache. Die kompakte Darstellung und die Übersichtstabellen der wichtigsten Sprachelemente machen das Buch zu einer unverzichtbaren Referenz für die Arbeit mit C.
Das Buch eignet sich hervorragend für Studenten der Informatik und anderer technischer Fächer.


Produktinformation

  • Deutsch
  • ISBN-13: 9783836215466
  • ISBN-10: 3836215462
  • Best.Nr.: 35242101

Inhaltsangabe

1;Liebe Leserin, lieber Leser,;3 2;Auf einen Blick;4 3;Inhalt;6 4;Vorwort;16 5;1 Einstieg in die Welt von C;17 5.1;1.1 Es war einmal ...;17 5.2;1.2 Der ANSI-C-Standard;18 5.3;1.3 Was brauche ich für C?;19 5.4;1.4 Welches Betriebssystem ...?;21 5.5;1.5 Listings zum Buch;21 5.6;1.6 Schreibkonventionen im Buch;22 5.7;1.7 Aufgaben im Buch;23 5.7.1;1.7.1 Level 1;23 5.7.2;1.7.2 Level 2;23 5.7.3;1.7.3 Level 3;23 6;2 Die ersten Schritte;24 6.1;2.1 Das erste Programm in C;24 6.2;2.2 Die Funktion »printf«;26 6.3;2.3 Zeichensätze;29 6.3.1;2.3.1 Basis-Zeichensatz;29 6.3.2;2.3.2 Ausführungszeichensatz;29 6.4;2.4 Symbole von C;31 6.4.1;2.4.1 Bezeichner;31 6.4.2;2.4.2 Schlüsselwörter;32 6.4.3;2.4.3 Literale;32 6.4.4;2.4.4 Einfache Begrenzer;34 6.5;2.5 Kommentare;35 6.6;2.6 Aufgaben;36 6.6.1;2.6.1 Level 1;36 6.6.2;2.6.2 Level 2;37 6.6.3;2.6.3 Level 3;37 7;3 Grundlegendes zu den Basisdatentypen;38 7.1;3.1 Deklaration und Definition;38 7.2;3.2 Initialisieren einer Variablen;39 7.3;3.3 Datentypen für Ganzzahlen;40 7.3.1;3.3.1 Vorzeichenlos und vorzeichenbehaftet;42 7.4;3.4 Die Funktion scanf;45 7.5;3.5 Fließkommazahlen;46 7.5.1;3.5.1 N-stellige Genauigkeit;48 7.5.2;3.5.2 Nix als Probleme mit Fließkommazahlen;50 7.5.3;3.5.3 Komplexe Gleitkommatypen (C99-Standard);51 7.6;3.6 Rechnen mit Zahlen;53 7.6.1;3.6.1 Arithmetische Operatoren;53 7.6.2;3.6.2 Erweiterte Darstellung arithmetischer Operatoren;56 7.6.3;3.6.3 Mathematische Funktionen;56 7.6.4;3.6.4 Exkurs für Fortgeschrittene: Wertebereich beim Rechnen überschritten;61 7.6.5;3.6.5 Inkrement- und Dekrement-Operator;64 7.6.6;3.6.6 Bit-Operatoren;65 7.6.7;3.6.7 sizeof-Operator;69 7.7;3.7 Datentyp für Zeichen;70 7.7.1;3.7.1 Der Datentyp »char«;70 7.7.2;3.7.2 Der Datentyp »wchar_t«;73 7.8;3.8 Boolescher Datentyp (C99);74 7.9;3.9 Aufgaben;75 7.9.1;3.9.1 Level 1;75 7.9.2;3.9.2 Level 2;75 7.9.3;3.9.3 Level 3;76 8;4 Typenumwandlung (Casts);77 8.1;4.1 Implizite Umwandlung des Compilers;77 8.1.1;4.1.1 Die Regeln der impliziten Umwandlung;78 8.2;4.2 Explizite Umwandlung durchführen;85 8.3;4.3 Aufgaben;86 8.3.1;4.3.1 Level 1;86 8.3.2;4.3.2 Level 2;87 8.3.3;4.3.3 Level 3;88 9;5 Verzweigungen;89 9.1;5.1 Bedingte Anweisung;89 9.1.1;5.1.1 if-Verzweigung;89 9.1.2;5.1.2 Vergleichsoperatoren;91 9.1.3;5.1.3 Alternative else-Verzweigung;93 9.1.4;5.1.4 else-if-Verzweigung;95 9.1.5;5.1.5 Verschachteln von if-Verzweigungen;98 9.2;5.2 Der Bedingungsoperator ?:;99 9.3;5.3 Logische Verknüpfungen;101 9.3.1;5.3.1 Der !-Operator;102 9.3.2;5.3.2 Der &&-Operator - Logisches UND;103 9.3.3;5.3.3 Der -Operator - Logisches ODER;104 9.4;5.4 Die Fallunterscheidung - switch;106 9.5;5.5 Aufgaben;111 9.5.1;5.5.1 Level 1;111 9.5.2;5.5.2 Level 2;112 9.5.3;5.5.3 Level 3;113 10;6 Schleifen - Programmteile wiederholen;115 10.1;6.1 Die Zählschleife - for;115 10.2;6.2 Die kopfgesteuerte while-Schleife;119 10.3;6.3 Die fußgesteuerte do-while-Schleife;121 10.4;6.4 Kontrollierte Sprünge aus Schleifen;123 10.5;6.5 Endlosschleifen;126 10.6;6.6 Fehlervermeidung bei Schleifen;127 10.7;6.7 Aufgaben;129 10.7.1;6.7.1 Level 1;130 10.7.2;6.7.2 Level 2;130 10.7.3;6.7.3 Level 3;131 11;7 Funktionen erstellen;132 11.1;7.1 Funktionen definieren;132 11.2;7.2 Funktionen aufrufen;133 11.3;7.3 Funktionsdeklaration (Vorwärts-Deklaration);134 11.4;7.4 Funktionsparameter (call-by-value);135 11.5;7.5 Rückgabewert von Funktionen;137 11.6;7.6 Exkurs: Funktion bei der Ausführung;140 11.7;7.7 Inline-Funktionen (C99);141 11.8;7.8 Rekursionen;143 11.9;7.9 main-Funktion;144 11.10;7.10 Aufgaben;147 11.10.1;7.10.1 Level 1;147 11.10.2;7.10.2 Level 2;148 11.10.3;7.10.3 Level 3;148 12;8 Sichtbarkeit, Gültigkeitsbereich und Lebensdauer;151 12.1;8.1 Lokale und globale Variablen;151 12.1.1;8.1.1 Lokale Variablen;151 12.1.2;8.1.2 Globale Variablen;152 12.2;8.2 Gültigkeitsbereich;155 12.3;8.3 Lebensdauer;156 12.4;8.4 Speicherklassen-Spezifizierer;157 12.4.1;8.4.1 Das Schlüsselwort »auto«;157 12.4.2;8.4.2 Das Schlüsselwort »extern«;158 12.4.3;8.4.3 Das Schlüsselwort »static«;159 12.4.4;8.4.4 Das Schlüsselwort »register«;161 12.5;8.5 Typ-Qualifizierer;161 12.6;8.6 Aufgaben;164 12.6.1;8.6.1 Level 1;164 12.6.2;8.6.2 Level 2;164 13;9 Präprozessor-Direktiven;166 13.1;9.1 Dateien einfügen mit »#include«;166 13.2;9.2 Konstanten und Makros mit »#define« und »#undef«;168 13.2.1;9.2.1 Symbolische Konstanten mit »#define«;168 13.2.2;9.2.2 Makros mit »#define«;171 13.2.3;9.2.3 Symbolische Konstanten und Makros aufheben (#undef);173 13.3;9.3 Bedingte Kompilierung;174 13.4;9.4 Weitere Präprozessor-Direktiven;177 13.5;9.5 Aufgaben;180 13.5.1;9.5.1 Level 1;181 13.5.2;9.5.2 Level 2;181 13.5.3;9.5.3 Level 3;182 14;10 Arrays und Zeichenketten (Strings);184 14.1;10.1 Arrays verwenden;184 14.1.1;10.1.1 Arrays definieren;184 14.1.2;10.1.2 Arrays initialisieren und darauf zugreifen;185 14.1.3;10.1.3 Arrays mit »scanf« einlesen;192 14.1.4;10.1.4 Arrays an Funktionen übergeben;193 14.2;10.2 Mehrdimensionale Arrays;194 14.2.1;10.2.1 Zweidimensionale Arrays initialisieren und darauf zugreifen;195 14.2.2;10.2.2 Zweidimensionale Arrays an eine Funktion übergeben;198 14.2.3;10.2.3 Noch mehr Dimensionen ...;200 14.3;10.3 Strings (Zeichenketten);200 14.3.1;10.3.1 Strings initialisieren;201 14.3.2;10.3.2 Einlesen von Strings;203 14.3.3;10.3.3 Stringfunktionen der Standard-Bibliothek - ;204 14.3.4;10.3.4 Umwandlungsfunktionen zwischen Zahlen und Strings;206 14.4;10.4 Aufgaben;206 14.4.1;10.4.1 Level 1;206 14.4.2;10.4.2 Level 2;207 14.4.3;10.4.3 Level 3;208 15;11 Zeiger (Pointer);209 15.1;11.1 Zeiger deklarieren;209 15.2;11.2 Zeiger initialisieren;210 15.3;11.3 Zugriff auf dem Inhalt von Zeigern;213 15.4;11.4 Speichergröße von Zeigern;217 15.5;11.5 Zeiger-Arithmetik;217 15.6;11.6 Zeiger als Funktionsparameter (call-by-reference);218 15.7;11.7 Zeiger als Rückgabewert;219 15.8;11.8 Arrays bzw. Strings und Zeiger;222 15.8.1;11.8.1 Zugriff auf Array-Elemente über Zeiger;222 15.8.2;11.8.2 Array und Zeiger als Funktionsparameter;224 15.8.3;11.8.3 char-Arrays und Zeiger;225 15.9;11.9 Zeiger-Arrays;226 15.10;11.10 Zeiger auf Arrays;229 15.11;11.11 Zeiger auf Zeiger (Zeigerzeiger);230 15.12;11.12 void-Zeiger;231 15.13;11.13 Typ-Qualifizierer bei Zeigern;233 15.13.1;11.13.1 Konstanter Zeiger;233 15.13.2;11.13.2 Readonly-Zeiger (Konstante Daten);233 15.13.3;11.13.3 Konstante Parameter für Funktionen;234 15.13.4;11.13.4 restrict-Zeiger (C99);234 15.14;11.14 Zeiger auf Funktionen;236 15.15;11.15 Aufgaben;239 15.15.1;11.15.1 Level 1;239 15.15.2;11.15.2 Level 2;240 15.15.3;11.15.3 Level 3;242 16;12 Dynamische Speicherverwaltung;243 16.1;12.1 Neuen Speicherblock reservieren;244 16.2;12.2 Speicherblock vergrößern oder verkleinern;248 16.3;12.3 Speicherblock freigeben;251 16.4;12.4 Die Heap-Fragmentierung;255 16.5;12.5 Zweidimensionale dynamische Arrays;258 16.6;12.6 Aufgaben;260 16.6.1;12.6.1 Level 1;260 16.6.2;12.6.2 Level 2;260 16.6.3;12.6.3 Level 3;262 17;13 Fortgeschrittene Datentypen;263 17.1;13.1 Strukturen;263 17.1.1;13.1.1 Struktur deklarieren;264 17.1.2;13.1.2 Definition einer Strukturvariablen;265 17.1.3;13.1.3 Deklaration und Definition zusammenfassen;265 17.1.4;13.1.4 Synonyme für Strukturtypen erstellen;266 17.1.5;13.1.5 Zugriff auf Strukturelemente;267 17.1.6;13.1.6 Strukturen initialisieren;269 17.1.7;13.1.7 Nur bestimmte Elemente initialisieren (C99);270 17.1.8;13.1.8 Operationen auf Strukturen;271 17.1.9;13.1.9 Strukturen, Funktionen und Strukturzeiger;271 17.1.10;13.1.10 Arrays von Strukturen;274 17.1.11;13.1.11 Strukturen in Strukturen;276 17.1.12;13.1.12 Zeiger in Strukturen;280 17.2;13.2 Union;282 17.3;13.3 Bitfelder;286 17.4;13.4 Das offsetof-Makro;290 17.5;13.5 Der Aufzählungstyp »enum«;290 17.6;13.6 Eigene Typen mit »typedef«;292 17.7;13.7 Aufgaben;293 17.7.1;13.7.1 Level 1;293 17.7.2;13.7.2 Level 2;293 17.7.3;13.7.3 Level 3;294 18;14 Dynamische Datenstrukturen;296 18.1;14.1 Verkettete Liste;296 18.1.1;14.1.1 Neues Element in der Liste einfügen;301 18.1.2;14.1.2 Element ausgeben (und suchen);303 18.1.3;14.1.3 Element aus der Liste entfernen;304 18.2;14.2 Doppelt verkettete Listen;307 18.3;14.3 Aufgaben;308 18.3.1;14.3.1 Level 1;308 18.3.2;14.3.2 Level 2;308 18.3.3;14.3.3 Level 3;309 19;15 Eingabe- und Ausgabe-Funktionen;310 19.1;15.1 Verschiedene Streams und Standard-Streams;310 19.1.1;15.1.1 Text-Streams;310 19.1.2;15.1.2 Binäre Streams;311 19.1.3;15.1.3 Standard-Streams;311 19.2;15.2 Dateien;312 19.3;15.3 Dateien öffnen;312 19.4;15.4 Dateien schließen;316 19.5;15.5 Lesen und Schreiben;317 19.6;15.6 Funktionen zur unformatierten Ein-/Ausgabe;317 19.6.1;15.6.1 Einzelne Zeichen lesen;317 19.6.2;15.6.2 Einzelne Zeichen schreiben;318 19.6.3;15.6.3 Zeilenweise (bzw. String) einlesen;320 19.6.4;15.6.4 Zeilenweise (bzw. String) schreiben;321 19.6.5;15.6.5 Blockweise lesen und schreiben;324 19.7;15.7 Funktionen zur formatierten Ein-/Ausgabe;327 19.7.1;15.7.1 Funktionen zur formatierten Ausgabe;328 19.7.2;15.7.2 Funktionen zur formatierten Eingabe;334 19.8;15.8 Wahlfreier Dateizugriff;336 19.8.1;15.8.1 Dateiposition ermitteln;337 19.8.2;15.8.2 Dateiposition ändern;337 19.9;15.9 Fehlerbehandlung;340 19.9.1;15.9.1 Fehler-Flag von Stream überprüfen - »ferror()«;340 19.9.2;15.9.2 Dateiende von Stream überprüfen - »feof()«;341 19.9.3;15.9.3 Die Fehlervariable »errno«;342 19.9.4;15.9.4 Fehler- und EOF-Flag zurücksetzen - »clearerr()«;343 19.10;15.10 Datei löschen oder umbenennen;343 19.11;15.11 Pufferung;343 19.12;15.12 Aufgabe;344 19.12.1;15.12.1 Level 1;344 19.12.2;15.12.2 Level 2;344 19.12.3;15.12.3 Level 3;346 20;A Rangfolge der Operatoren;347 20.1;A.1 Operatoren-Priorität;347 20.2;A.2 ASCII-Code-Tabelle;349 20.3;A.3 Reservierte Schlüsselwörter in C;350 20.4;A.4 Standard-Headerdateien der ANSI-C-Bibliothek;350 21;B Kommandozeilenargumente;351 22;C Lösungen der Übungsaufgaben;354 22.1;C.1 Lösungen zum Kapitel 2;354 22.1.1;C.1.1 Lösung Level 1;354 22.1.2;C.1.2 Lösung Level 2;354 22.1.3;C.1.3 Lösung Level 3;354 22.2;C.2 Lösungen zum Kapitel 3;355 22.2.1;C.2.1 Lösung Level 1;355 22.2.2;C.2.2 Lösung Level 2;355 22.2.3;C.2.3 Lösung Level 3;356 22.3;C.3 Lösungen zum Kapitel 4;357 22.3.1;C.3.1 Lösung Level 1;357 22.3.2;C.3.2 Lösung Level 2;357 22.3.3;C.3.3 Lösung Level 3;359 22.4;C.4 Lösungen zum Kapitel 5;359 22.4.1;C.4.1 Lösung Level 1;359 22.4.2;C.4.2 Lösung Level 2;360 22.4.3;C.4.3 Lösung Level 3;361 22.5;C.5 Lösungen zum Kapitel 6;362 22.5.1;C.5.1 Lösung Level 1;362 22.5.2;C.5.2 Lösung Level 2;363 22.5.3;C.5.3 Lösung Level 3;364 22.6;C.6 Lösungen zum Kapitel 7;366 22.6.1;C.6.1 Lösung Level 1;366 22.6.2;C.6.2 Lösung Level 2;367 22.6.3;C.6.3 Lösung Level 3;368 22.7;C.7 Lösungen zum Kapitel 8;369 22.7.1;C.7.1 Lösung Level 1;369 22.7.2;C.7.2 Lösung Level 2;370 22.8;C.8 Lösungen zum Kapitel 9;370 22.8.1;C.8.1 Lösung Level 1;370 22.8.2;C.8.2 Lösung Level 2;371 22.8.3;C.8.3 Lösung Level 3;372 22.9;C.9 Lösungen zum Kapitel 10;374 22.9.1;C.9.1 Lösung Level 1;374 22.9.2;C.9.2 Lösung Level 2;375 22.9.3;C.9.3 Lösung Level 3;375 22.10;C.10 Lösungen zum Kapitel 11;378 22.10.1;C.10.1 Lösung Level 1;378 22.10.2;C.10.2 Lösung Level 2;379 22.10.3;C.10.3 Lösung Level 3;380 22.11;C.11 Lösungen zum Kapitel 12;383 22.11.1;C.11.1 Lösung Level 1;383 22.11.2;C.11.2 Lösung Level 2;384 22.11.3;C.11.3 Lösung Level 3;386 22.12;C.12 Lösungen zum Kapitel 13;388 22.12.1;C.12.1 Lösung Level 1;388 22.12.2;C.12.2 Lösung Level 2;389 22.12.3;C.12.3 Lösung Level 3;391 22.13;C.13 Lösungen zum Kapitel 14;392 22.13.1;C.13.1 Lösung Level 1;392 22.13.2;C.13.2 Lösung Level 2;393 22.13.3;C.13.3 Lösung Level 3;393 22.14;C.14 Lösungen zum Kapitel 15;396 22.14.1;C.14.1 Lösung Level 1;396 22.14.2;C.14.2 Lösung Level 2;397 22.14.3;C.14.3 Lösung Level 3;397
Mehr von