49,90 €*
Versandkostenfrei per Post / DHL
auf Lager, Lieferzeit 1-2 Werktage
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
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 ......
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 |
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 ......
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 |