Zum Hauptinhalt springen
Dekorationsartikel gehören nicht zum Leistungsumfang.
C von A bis Z
Das umfassende Handbuch für die Programmierung mit C. Zum Lernen und Nachschlagen. Aktuell zum Standard C23
Buch von Jürgen Wolf (u. a.)
Sprache: Deutsch

49,90 €*

inkl. MwSt.

Versandkostenfrei per Post / DHL

auf Lager, Lieferzeit 1-2 Werktage

Kategorien:
Beschreibung

Unser beliebter Klassiker in fünfter Auflage. Zum aktuellen Standard C23 und mit einem Autorenteam aus Praxis und Lehre. Lassen Sie sich umfassend einführen oder nutzen Sie das Buch als Nachschlagewerk. Von den Grundlagen über die dynamische Speicherverwaltung bis zur plattformübergreifenden Entwicklung. Randvoll mit hilfreichen Beispielen und Praxistipps - C-Wissen pur!

Aus dem Inhalt:

  • Datenstrukturen
  • Algorithmen
  • Sicherheit
  • Dynamische Speicherverwaltung
  • Netzwerkprogrammierung
  • Cross-Plattform-Entwicklung
  • Parallele Programmierung
  • Auf Datenbanken zugreifen
  • Codebeispiele und Praxistipps

Unser beliebter Klassiker in fünfter Auflage. Zum aktuellen Standard C23 und mit einem Autorenteam aus Praxis und Lehre. Lassen Sie sich umfassend einführen oder nutzen Sie das Buch als Nachschlagewerk. Von den Grundlagen über die dynamische Speicherverwaltung bis zur plattformübergreifenden Entwicklung. Randvoll mit hilfreichen Beispielen und Praxistipps - C-Wissen pur!

Aus dem Inhalt:

  • Datenstrukturen
  • Algorithmen
  • Sicherheit
  • Dynamische Speicherverwaltung
  • Netzwerkprogrammierung
  • Cross-Plattform-Entwicklung
  • Parallele Programmierung
  • Auf Datenbanken zugreifen
  • Codebeispiele und Praxistipps
Über den Autor
Jürgen Wolf ist seit über 16 Jahren Autor und seit mehr als 10 Jahren passionierter Digitalfotograf. Seine Buchthemen sind Bildbearbeitung, Fotografie, Webentwicklung, Betriebssysteme und Programmierung. Und egal welches Thema: Bei jedem Buch ist es sein Ziel, auch komplexe Zusammenhänge klar und verständlich zu erklären.
Zusammenfassung
Inkl. paralleler Programmierung, dynamischer Speicherverwaltung, plattformübergreifender Entwicklung, u.v.m.
Inhaltsverzeichnis
Vorwort ... 25

1. Einstieg in C ... 27

1.1 ... Übersicht zu C ... 27

1.2 ... Der ANSI-C-Standard ... 29

1.3 ... Der POSIX-Standard ... 32

1.4 ... Vor- und Nachteile der Programmiersprache C ... 33

1.5 ... C in diesem Buch ... 34

1.6 ... Was benötigen Sie für C? ... 35

1.7 ... Welcher Compiler und welches Betriebssystem? ... 37

1.8 ... Unterschiede zwischen Windows und Linux ... 38

1.9 ... Eine Programmierumgebung einrichten am Beispiel von Pelles C 8.00 für Windows ... 38

1.10 ... Eine Programmierumgebung einrichten - Nano/GCC für Linux ... 47

2. Eine günstige Programmierplattform - der Raspberry Pi ... 49

2.1 ... Was genau ist der Raspberry Pi? ... 50

2.2 ... Installation eines Linux-Betriebssystems am Beispiel von Raspberry Pi OS ... 54

2.3 ... Die Konfiguration des Raspberry Pi im Detail ... 63

2.4 ... Das Tool raspi-config ... 63

3. Das erste Programm ... 69

3.1 ... Was leistet der Editor? ... 70

3.2 ... Was leistet der Compiler? ... 70

3.3 ... Was sind Include-Dateien, und wozu benötigt man sie? ... 71

3.4 ... Das erste Programm - die Ausgabe eines Textes in der Konsole ... 71

3.5 ... Das Hallo-Welt-Programm im Detail ... 72

3.6 ... Wie kompiliert man ein Programm und führt es anschließend aus? ... 75

4. Grundlagen ... 77

4.1 ... Symbole ... 77

4.2 ... Zeichensätze ... 84

4.3 ... Strings ... 89

4.4 ... Das Einführungsbeispiel mit Strings ... 90

5. Basisdatentypen ... 91

5.1 ... Was ist ein Byte, und wie werden Zahlen in C gespeichert? ... 91

5.2 ... Was ist eine Variable, und was ist ein Variablentyp? ... 92

5.3 ... Was ist ein Operand? ... 93

5.4 ... Was ist ein Parameter? ... 93

5.5 ... Wie speichert ein Prozessor Variablen, Parameter und Operanden? ... 93

5.6 ... Was sind Speicheradressen, und warum sind sie wichtig für C? ... 93

5.7 ... Deklaration und Definition von Variablen ... 94

5.8 ... Array-Datentypen (Datenfelder) ... 96

5.9 ... Standard-Datentypen ... 96

5.10 ... Ganzzahlige Typen mit vorgegebener Breite - ... 103

5.11 ... Die Gleitpunkttypen »float« und »double« ... 107

5.12 ... Komplexe Gleitpunkttypen - ... 115

5.13 ... Der Datentyp »char«, Standardgröße 1 Byte ... 117

5.14 ... Nationale contra internationale Zeichensätze ... 123

5.15 ... Boolesche Werte - ... 127

5.16 ... Der Unterschied zwischen vorzeichenlosen und vorzeichenbehafteten Zahlen ... 128

5.17 ... Limits für Ganzzahl- und Gleitpunktdatentypen ... 130

5.18 ... Der Typ »void« ... 134

5.19 ... Numerische Konstanten ... 134

5.20 ... Umwandlungsvorgaben für formatierte Ein-/Ausgabe ... 136

6. Formatierte Ein-/Ausgabe mit »scanf()« und »printf()« ... 145

6.1 ... Formatierte Eingabe mit »scanf()« ... 145

6.2 ... Formatierte Ausgabe mit »printf()« ... 155

7. Operatoren ... 159

7.1 ... Was sind Operatoren, und wozu benötigt man sie in C? ... 159

7.2 ... Arithmetische Operatoren ... 160

7.3 ... Erweiterte Darstellung arithmetischer Operatoren ... 164

7.4 ... Inkrement- und Dekrement-Operatoren ... 165

7.5 ... Bit-Operatoren ... 167

7.6 ... Makros für logische Operatoren und Bit-Operatoren - ... 175

7.7 ... Der »sizeof«-Operator ... 176

8. Typumwandlung ... 179

8.1 ... Automatische implizite Datentypumwandlung durch den CCompiler ... 179

8.2 ... Wozu benötigt man das benutzerdefinierte explizite Typecasting? ... 184

8.3 ... Explizite Datentypumwandlung mit Typecasting an Beispielen ... 184

9. Kontrollstrukturen ... 187

9.1 ... Verzweigungen mit der »if«-Bedingung ... 188

9.2 ... Die Verzweigung mit »else if« ... 192

9.3 ... Die Verzweigung mit »else« ... 194

9.4 ... Der !-Operator (logischer NOT-Operator) ... 198

9.5 ... Logisches UND (&&) - logisches ODER (||) ... 200

9.6 ... Der Bedingungsoperator »?:« ... 203

9.7 ... Fallunterscheidung: die »switch«-Verzweigung ... 205

9.8 ... Die »while«-Schleife ... 210

9.9 ... Die »do while«-Schleife ... 214

9.10 ... Die »for«-Schleife ... 219

9.11 ... Kontrollierter Ausstieg aus Schleifen mit »break« ... 227

9.12 ... Direkte Sprünge mit »goto« ... 229

9.13 ... Einige Anmerkungen zum Notationsstil, ehe Sie weiterlesen ... 229

9.14 ... Einige Anmerkungen zu einem guten Programmierstil ... 230

10. Funktionen ... 233

10.1 ... Was sind Funktionen? ... 233

10.2 ... Wozu dienen Funktionen? ... 234

10.3 ... Definition von Funktionen ... 234

10.4 ... Funktionsaufruf ... 235

10.5 ... Funktionsdeklaration ... 237

10.6 ... Lokale Variablen ... 239

10.7 ... Globale Variablen ... 241

10.8 ... Statische Variablen ... 243

10.9 ... Schlüsselwörter für Variablen - Speicherklassen ... 244

10.10 ... Typ-Qualifizierer ... 245

10.11 ... Geltungsbereich von Variablen ... 246

10.12 ... Speicherklassen-Spezifizierer für Funktionen ... 248

10.13 ... Datenaustausch zwischen Funktionen ... 249

10.14 ... Wertübergabe an Funktionen (Call-by-Value) ... 250

10.15 ... Der Rückgabewert von Funktionen ... 254

10.16 ... Die Hauptfunktion »main()« ... 256

10.17 ... Was bedeutet der Rückgabewert beim Beenden eines Programms? ... 258

10.18 ... Funktionen der Laufzeitbibliothek ... 262

10.19 ... Getrenntes Kompilieren von Quelldateien ... 263

10.20 ... Rekursive Funktionen (Rekursion) ... 265

10.21 ... »inline«-Funktionen ... 278

11. Präprozessor-Direktiven ... 281

11.1 ... Mit »#include« Dateien einbinden ... 282

11.2 ... Wichtige vordefinierte Headerdateien für C ... 283

11.3 ... Makros und Konstanten - »#define« ... 285

11.4 ... Bedingte Kompilierung mit »#ifdef« ... 294

11.5 ... Vordefinierte Präprozessor-Direktiven (ANSI C) ... 300

11.6 ... Einen Makroparameter durch einen String ersetzen ... 302

11.7 ... »#undef« - Makronamen wieder aufheben ... 304

11.8 ... Fehlermeldungen ausgeben mit »#error« ... 304

11.9 ... »#pragma« (gilt nur für Windows) ... 306

12. Arrays ... 307

12.1 ... Arrays deklarieren ... 308

12.2 ... Initialisierung und Zugriff auf Arrays ... 309

12.3 ... Arrays vergleichen ... 316

12.4 ... Anzahl der Elemente eines Arrays ermitteln ... 318

12.5 ... Übergabe von Arrays an Funktionen ... 319

12.6 ... Arrays aus Funktionen zurückgeben ... 322

12.7 ... Programmbeispiel zu Arrays ... 323

12.8 ... Array-Werte über die Tastatur einlesen ... 327

12.9 ... Mehrdimensionale Arrays ... 328

12.10 ... Arrays in eine Tabellenkalkulation einlesen (CSV-Dateien) ... 343

12.11 ... Strings/Zeichenketten (»char«-Array) ... 345

12.12 ... Einlesen von Strings ... 352

12.13 ... Die Standard-Bibliothek ... 355

13. Zeiger (Pointer) ... 369

13.1 ... Der Unterschied zwischen einer normalen Variablen und einem Zeiger ... 369

13.2 ... Zeiger deklarieren ... 370

13.3 ... Zeiger initialisieren ... 371

13.4 ... Zeigerarithmetik ... 384

13.5 ... Zeiger, die auf andere Zeiger verweisen ... 385

13.6 ... Typensicherung bei der Dereferenzierung ... 388

13.7 ... Zeiger als Funktionsparameter (Call-by-Reference) ... 389

13.8 ... Array und Zeiger ... 396

13.9 ... Zeiger auf Strings ... 403

13.10 ... Zeiger auf Zeiger und Stringtabellen ... 405

13.11 ... Zeiger auf Funktionen ... 415

13.12 ... void-Zeiger ... 420

13.13 ... Äquivalenz zwischen Zeigern und Arrays ... 424

13.14 ... Der »restrict«-Zeiger ... 426

14. Kommandozeilenargumente ... 429

14.1 ... Argumente an die Hauptfunktion übergeben ... 430

14.2 ... Argumente aus der Kommandozeile auswerten ... 435

15. Dynamische Speicherverwaltung ... 441

15.1 ... Das Speicherkonzept ... 442

15.2 ... Speicherallokation mit »malloc()« ... 444

15.3 ... Das NULL-Mysterium ... 447

15.4 ... Speicherreservierung und ihre Probleme ... 451

15.5 ... »free()« - Speicher wieder freigeben ... 452

15.6 ... Dynamische Arrays ... 460

15.7 ... Speicher dynamisch reservieren mit »realloc()« und »calloc()« ... 464

15.8 ... Speicher vom Stack anfordern mit »alloca()« (nicht ANSI C) ... 468

15.9 ... Ergänzende Anmerkungen zu »free()« ... 468

15.10 ... Zweidimensionale dynamische Arrays ... 469

15.11 ... Was muss man tun, wenn die Speicherallokation fehlschlägt? ... 472

16. Strukturen ... 479

16.1 ... Benutzerdefinierte Typendefinitionen mit »typedef« ... 479

16.2 ... Was ist ein strukturierter Datentyp, und wozu benötigt man ihn in C? ... 479

16.3 ... Strukturen mit »typedef struct« deklarieren ... 480

16.4 ... Initialisierung und Zugriff auf Strukturen ... 482

16.5 ... Strukturen als Wertübergabe an eine Funktion benutzen ... 491

16.6 ... Strukturen als Rückgabewert einer Funktion benutzen ... 493

16.7 ... Strukturen miteinander vergleichen ... 495

16.8 ... Arrays von Strukturen erstellen ... 497

16.9 ... Strukturen in Strukturen (Nested Structures) ... 504

16.10 ... Weitere spezielle Datentypen ... 514

16.11 ... Attribute von Strukturen verändern ... 524

16.12 ... Bitfelder ... 528

16.13 ... Das »offsetof«-Makro ... 535

17. Ein-/Ausgabe-Funktionen ... 537

17.1 ... Was ist eine Datei aus Sicht der Programmiersprache C? ... 537

17.2 ... Formatierte und unformatierte Ein-/Ausgabe ... 538

17.3 ... Höhere Ein-/Ausgabe-Funktionen mit ... 538

17.4 ... Streams (Ein-/Ausgabe-Datenströme) ... 566

17.5 ... Spezielle Ein-/Ausgabe-Funktionen für Streams ... 595

17.6 ... Low-Level-Datei-I/O-Funktionen (nicht ANSI C) ... 641

18. Attribute von Dateien und das Arbeiten mit Verzeichnissen (nicht ANSI C) ... 673

18.1 ... Die Attribute einer Datei mit »stat()« ermitteln ... 673

18.2 ... Prüfen des Zugriffsrechts mit »access()« ... 691

18.3 ... Verzeichnisfunktionen ... 693

19. Arbeiten mit variabel langen Argumentlisten - ... 705

19.1 ... Was ist eine Ellipse, und wie werden mit ihr Parameter übergeben? ... 705

19.2 ... Wie kann man mit die Parameterliste abfragen? ... 706

19.3 ... Makros in - »va_list«, »va_arg«, »va_start« und »va_end« ... 706

19.4 ... Die Argumentliste am Anfang oder Ende kennzeichnen ... 707

19.5 ... »vprintf()«, »vsprintf()«, »vfsprintf()« und »vsnsprintf()« ... 712

19.6 ......
Details
Erscheinungsjahr: 2023
Fachbereich: Programmiersprachen
Genre: Informatik
Rubrik: Naturwissenschaften & Technik
Medium: Buch
Reihe: Rheinwerk Computing
Inhalt: 1263 S.
ISBN-13: 9783836295048
ISBN-10: 3836295040
Sprache: Deutsch
Herstellernummer: 459/09504
Einband: Gebunden
Autor: Wolf, Jürgen
Krooß, René
Auflage: 5. Auflage
Hersteller: Rheinwerk Verlag GmbH
Maße: 246 x 175 x 63 mm
Von/Mit: Jürgen Wolf (u. a.)
Erscheinungsdatum: 07.06.2023
Gewicht: 1,958 kg
Artikel-ID: 126465510
Über den Autor
Jürgen Wolf ist seit über 16 Jahren Autor und seit mehr als 10 Jahren passionierter Digitalfotograf. Seine Buchthemen sind Bildbearbeitung, Fotografie, Webentwicklung, Betriebssysteme und Programmierung. Und egal welches Thema: Bei jedem Buch ist es sein Ziel, auch komplexe Zusammenhänge klar und verständlich zu erklären.
Zusammenfassung
Inkl. paralleler Programmierung, dynamischer Speicherverwaltung, plattformübergreifender Entwicklung, u.v.m.
Inhaltsverzeichnis
Vorwort ... 25

1. Einstieg in C ... 27

1.1 ... Übersicht zu C ... 27

1.2 ... Der ANSI-C-Standard ... 29

1.3 ... Der POSIX-Standard ... 32

1.4 ... Vor- und Nachteile der Programmiersprache C ... 33

1.5 ... C in diesem Buch ... 34

1.6 ... Was benötigen Sie für C? ... 35

1.7 ... Welcher Compiler und welches Betriebssystem? ... 37

1.8 ... Unterschiede zwischen Windows und Linux ... 38

1.9 ... Eine Programmierumgebung einrichten am Beispiel von Pelles C 8.00 für Windows ... 38

1.10 ... Eine Programmierumgebung einrichten - Nano/GCC für Linux ... 47

2. Eine günstige Programmierplattform - der Raspberry Pi ... 49

2.1 ... Was genau ist der Raspberry Pi? ... 50

2.2 ... Installation eines Linux-Betriebssystems am Beispiel von Raspberry Pi OS ... 54

2.3 ... Die Konfiguration des Raspberry Pi im Detail ... 63

2.4 ... Das Tool raspi-config ... 63

3. Das erste Programm ... 69

3.1 ... Was leistet der Editor? ... 70

3.2 ... Was leistet der Compiler? ... 70

3.3 ... Was sind Include-Dateien, und wozu benötigt man sie? ... 71

3.4 ... Das erste Programm - die Ausgabe eines Textes in der Konsole ... 71

3.5 ... Das Hallo-Welt-Programm im Detail ... 72

3.6 ... Wie kompiliert man ein Programm und führt es anschließend aus? ... 75

4. Grundlagen ... 77

4.1 ... Symbole ... 77

4.2 ... Zeichensätze ... 84

4.3 ... Strings ... 89

4.4 ... Das Einführungsbeispiel mit Strings ... 90

5. Basisdatentypen ... 91

5.1 ... Was ist ein Byte, und wie werden Zahlen in C gespeichert? ... 91

5.2 ... Was ist eine Variable, und was ist ein Variablentyp? ... 92

5.3 ... Was ist ein Operand? ... 93

5.4 ... Was ist ein Parameter? ... 93

5.5 ... Wie speichert ein Prozessor Variablen, Parameter und Operanden? ... 93

5.6 ... Was sind Speicheradressen, und warum sind sie wichtig für C? ... 93

5.7 ... Deklaration und Definition von Variablen ... 94

5.8 ... Array-Datentypen (Datenfelder) ... 96

5.9 ... Standard-Datentypen ... 96

5.10 ... Ganzzahlige Typen mit vorgegebener Breite - ... 103

5.11 ... Die Gleitpunkttypen »float« und »double« ... 107

5.12 ... Komplexe Gleitpunkttypen - ... 115

5.13 ... Der Datentyp »char«, Standardgröße 1 Byte ... 117

5.14 ... Nationale contra internationale Zeichensätze ... 123

5.15 ... Boolesche Werte - ... 127

5.16 ... Der Unterschied zwischen vorzeichenlosen und vorzeichenbehafteten Zahlen ... 128

5.17 ... Limits für Ganzzahl- und Gleitpunktdatentypen ... 130

5.18 ... Der Typ »void« ... 134

5.19 ... Numerische Konstanten ... 134

5.20 ... Umwandlungsvorgaben für formatierte Ein-/Ausgabe ... 136

6. Formatierte Ein-/Ausgabe mit »scanf()« und »printf()« ... 145

6.1 ... Formatierte Eingabe mit »scanf()« ... 145

6.2 ... Formatierte Ausgabe mit »printf()« ... 155

7. Operatoren ... 159

7.1 ... Was sind Operatoren, und wozu benötigt man sie in C? ... 159

7.2 ... Arithmetische Operatoren ... 160

7.3 ... Erweiterte Darstellung arithmetischer Operatoren ... 164

7.4 ... Inkrement- und Dekrement-Operatoren ... 165

7.5 ... Bit-Operatoren ... 167

7.6 ... Makros für logische Operatoren und Bit-Operatoren - ... 175

7.7 ... Der »sizeof«-Operator ... 176

8. Typumwandlung ... 179

8.1 ... Automatische implizite Datentypumwandlung durch den CCompiler ... 179

8.2 ... Wozu benötigt man das benutzerdefinierte explizite Typecasting? ... 184

8.3 ... Explizite Datentypumwandlung mit Typecasting an Beispielen ... 184

9. Kontrollstrukturen ... 187

9.1 ... Verzweigungen mit der »if«-Bedingung ... 188

9.2 ... Die Verzweigung mit »else if« ... 192

9.3 ... Die Verzweigung mit »else« ... 194

9.4 ... Der !-Operator (logischer NOT-Operator) ... 198

9.5 ... Logisches UND (&&) - logisches ODER (||) ... 200

9.6 ... Der Bedingungsoperator »?:« ... 203

9.7 ... Fallunterscheidung: die »switch«-Verzweigung ... 205

9.8 ... Die »while«-Schleife ... 210

9.9 ... Die »do while«-Schleife ... 214

9.10 ... Die »for«-Schleife ... 219

9.11 ... Kontrollierter Ausstieg aus Schleifen mit »break« ... 227

9.12 ... Direkte Sprünge mit »goto« ... 229

9.13 ... Einige Anmerkungen zum Notationsstil, ehe Sie weiterlesen ... 229

9.14 ... Einige Anmerkungen zu einem guten Programmierstil ... 230

10. Funktionen ... 233

10.1 ... Was sind Funktionen? ... 233

10.2 ... Wozu dienen Funktionen? ... 234

10.3 ... Definition von Funktionen ... 234

10.4 ... Funktionsaufruf ... 235

10.5 ... Funktionsdeklaration ... 237

10.6 ... Lokale Variablen ... 239

10.7 ... Globale Variablen ... 241

10.8 ... Statische Variablen ... 243

10.9 ... Schlüsselwörter für Variablen - Speicherklassen ... 244

10.10 ... Typ-Qualifizierer ... 245

10.11 ... Geltungsbereich von Variablen ... 246

10.12 ... Speicherklassen-Spezifizierer für Funktionen ... 248

10.13 ... Datenaustausch zwischen Funktionen ... 249

10.14 ... Wertübergabe an Funktionen (Call-by-Value) ... 250

10.15 ... Der Rückgabewert von Funktionen ... 254

10.16 ... Die Hauptfunktion »main()« ... 256

10.17 ... Was bedeutet der Rückgabewert beim Beenden eines Programms? ... 258

10.18 ... Funktionen der Laufzeitbibliothek ... 262

10.19 ... Getrenntes Kompilieren von Quelldateien ... 263

10.20 ... Rekursive Funktionen (Rekursion) ... 265

10.21 ... »inline«-Funktionen ... 278

11. Präprozessor-Direktiven ... 281

11.1 ... Mit »#include« Dateien einbinden ... 282

11.2 ... Wichtige vordefinierte Headerdateien für C ... 283

11.3 ... Makros und Konstanten - »#define« ... 285

11.4 ... Bedingte Kompilierung mit »#ifdef« ... 294

11.5 ... Vordefinierte Präprozessor-Direktiven (ANSI C) ... 300

11.6 ... Einen Makroparameter durch einen String ersetzen ... 302

11.7 ... »#undef« - Makronamen wieder aufheben ... 304

11.8 ... Fehlermeldungen ausgeben mit »#error« ... 304

11.9 ... »#pragma« (gilt nur für Windows) ... 306

12. Arrays ... 307

12.1 ... Arrays deklarieren ... 308

12.2 ... Initialisierung und Zugriff auf Arrays ... 309

12.3 ... Arrays vergleichen ... 316

12.4 ... Anzahl der Elemente eines Arrays ermitteln ... 318

12.5 ... Übergabe von Arrays an Funktionen ... 319

12.6 ... Arrays aus Funktionen zurückgeben ... 322

12.7 ... Programmbeispiel zu Arrays ... 323

12.8 ... Array-Werte über die Tastatur einlesen ... 327

12.9 ... Mehrdimensionale Arrays ... 328

12.10 ... Arrays in eine Tabellenkalkulation einlesen (CSV-Dateien) ... 343

12.11 ... Strings/Zeichenketten (»char«-Array) ... 345

12.12 ... Einlesen von Strings ... 352

12.13 ... Die Standard-Bibliothek ... 355

13. Zeiger (Pointer) ... 369

13.1 ... Der Unterschied zwischen einer normalen Variablen und einem Zeiger ... 369

13.2 ... Zeiger deklarieren ... 370

13.3 ... Zeiger initialisieren ... 371

13.4 ... Zeigerarithmetik ... 384

13.5 ... Zeiger, die auf andere Zeiger verweisen ... 385

13.6 ... Typensicherung bei der Dereferenzierung ... 388

13.7 ... Zeiger als Funktionsparameter (Call-by-Reference) ... 389

13.8 ... Array und Zeiger ... 396

13.9 ... Zeiger auf Strings ... 403

13.10 ... Zeiger auf Zeiger und Stringtabellen ... 405

13.11 ... Zeiger auf Funktionen ... 415

13.12 ... void-Zeiger ... 420

13.13 ... Äquivalenz zwischen Zeigern und Arrays ... 424

13.14 ... Der »restrict«-Zeiger ... 426

14. Kommandozeilenargumente ... 429

14.1 ... Argumente an die Hauptfunktion übergeben ... 430

14.2 ... Argumente aus der Kommandozeile auswerten ... 435

15. Dynamische Speicherverwaltung ... 441

15.1 ... Das Speicherkonzept ... 442

15.2 ... Speicherallokation mit »malloc()« ... 444

15.3 ... Das NULL-Mysterium ... 447

15.4 ... Speicherreservierung und ihre Probleme ... 451

15.5 ... »free()« - Speicher wieder freigeben ... 452

15.6 ... Dynamische Arrays ... 460

15.7 ... Speicher dynamisch reservieren mit »realloc()« und »calloc()« ... 464

15.8 ... Speicher vom Stack anfordern mit »alloca()« (nicht ANSI C) ... 468

15.9 ... Ergänzende Anmerkungen zu »free()« ... 468

15.10 ... Zweidimensionale dynamische Arrays ... 469

15.11 ... Was muss man tun, wenn die Speicherallokation fehlschlägt? ... 472

16. Strukturen ... 479

16.1 ... Benutzerdefinierte Typendefinitionen mit »typedef« ... 479

16.2 ... Was ist ein strukturierter Datentyp, und wozu benötigt man ihn in C? ... 479

16.3 ... Strukturen mit »typedef struct« deklarieren ... 480

16.4 ... Initialisierung und Zugriff auf Strukturen ... 482

16.5 ... Strukturen als Wertübergabe an eine Funktion benutzen ... 491

16.6 ... Strukturen als Rückgabewert einer Funktion benutzen ... 493

16.7 ... Strukturen miteinander vergleichen ... 495

16.8 ... Arrays von Strukturen erstellen ... 497

16.9 ... Strukturen in Strukturen (Nested Structures) ... 504

16.10 ... Weitere spezielle Datentypen ... 514

16.11 ... Attribute von Strukturen verändern ... 524

16.12 ... Bitfelder ... 528

16.13 ... Das »offsetof«-Makro ... 535

17. Ein-/Ausgabe-Funktionen ... 537

17.1 ... Was ist eine Datei aus Sicht der Programmiersprache C? ... 537

17.2 ... Formatierte und unformatierte Ein-/Ausgabe ... 538

17.3 ... Höhere Ein-/Ausgabe-Funktionen mit ... 538

17.4 ... Streams (Ein-/Ausgabe-Datenströme) ... 566

17.5 ... Spezielle Ein-/Ausgabe-Funktionen für Streams ... 595

17.6 ... Low-Level-Datei-I/O-Funktionen (nicht ANSI C) ... 641

18. Attribute von Dateien und das Arbeiten mit Verzeichnissen (nicht ANSI C) ... 673

18.1 ... Die Attribute einer Datei mit »stat()« ermitteln ... 673

18.2 ... Prüfen des Zugriffsrechts mit »access()« ... 691

18.3 ... Verzeichnisfunktionen ... 693

19. Arbeiten mit variabel langen Argumentlisten - ... 705

19.1 ... Was ist eine Ellipse, und wie werden mit ihr Parameter übergeben? ... 705

19.2 ... Wie kann man mit die Parameterliste abfragen? ... 706

19.3 ... Makros in - »va_list«, »va_arg«, »va_start« und »va_end« ... 706

19.4 ... Die Argumentliste am Anfang oder Ende kennzeichnen ... 707

19.5 ... »vprintf()«, »vsprintf()«, »vfsprintf()« und »vsnsprintf()« ... 712

19.6 ......
Details
Erscheinungsjahr: 2023
Fachbereich: Programmiersprachen
Genre: Informatik
Rubrik: Naturwissenschaften & Technik
Medium: Buch
Reihe: Rheinwerk Computing
Inhalt: 1263 S.
ISBN-13: 9783836295048
ISBN-10: 3836295040
Sprache: Deutsch
Herstellernummer: 459/09504
Einband: Gebunden
Autor: Wolf, Jürgen
Krooß, René
Auflage: 5. Auflage
Hersteller: Rheinwerk Verlag GmbH
Maße: 246 x 175 x 63 mm
Von/Mit: Jürgen Wolf (u. a.)
Erscheinungsdatum: 07.06.2023
Gewicht: 1,958 kg
Artikel-ID: 126465510
Warnhinweis

Ähnliche Produkte

Ähnliche Produkte