C für Java-Programmierer

C für Java-Programmierer

von: Carsten Vogt

Carl Hanser Fachbuchverlag, 2007

ISBN: 9783446411326

Sprache: Deutsch

251 Seiten, Download: 8896 KB

 
Format:  PDF, auch als Online-Lesen

geeignet für: Apple iPad, Android Tablet PC's Online-Lesen PC, MAC, Laptop


 

eBook anfordern

Mehr zum Inhalt

C für Java-Programmierer



  Vorwort 6  
  Inhalt 8  
  1 Einführung 14  
     Schnelleinstieg: C und Java im Vergleich 15  
     1.1 C und Java von den Anfängen bis heute 16  
        1.1.1 Die Entwicklung von C 16  
           1.1.1.1 Der Ursprung 16  
           1.1.1.2 Grundlegende Eigenschaften 17  
           1.1.1.3 Standards 17  
        1.1.2 Objektorientierte Nachfolgesprachen 18  
           1.1.2.1 C++ 18  
           1.1.2.2 Java 18  
        1.1.3 Einsatzgebiete von C und Java 19  
     1.2 C und Java im Sprachvergleich 19  
        1.2.1 Drei Beispielprogramme 19  
           1.2.1.1 Einfaches Programm mit Ausgabe 19  
           1.2.1.2 Programm mit Eingabe und C-spezifischen Datentypen 21  
           1.2.1.3 Programm mit einer Funktion 22  
        1.2.2 Eigenschaften von Java vs. Eigenschaften von C 23  
           1.2.2.1 Tabellarischer Vergleich 23  
           1.2.2.2 Objektorientierung vs. Prozedurorientierung 24  
           1.2.2.3 Interpretation vs. Übersetzung 26  
     1.3 Zu diesem Buch 27  
        1.3.1 Aufbau 27  
        1.3.2 Benutzung 28  
        1.3.3 Weitere Quellen 29  
  2 Struktur und Übersetzung von C-Programmen 31  
     Schnelleinstieg: Struktur und Übersetzung von C-Programmen 32  
     2.1 Aufbau von C-Programmen 33  
        2.1.1 C-Quellcode in einer einzelnen Datei 33  
        2.1.2 C-Quellcode in mehreren Dateien 34  
     2.2 Übersetzung von C-Programmen 35  
        2.2.1 Phasen der Übersetzung 35  
        2.2.2 Modularisierung 37  
        2.2.3 Übersetzung unter Windows 38  
        2.2.4 Übersetzung unter UNIX/Linux 39  
     2.3 Anweisungen des Präprozessors 41  
        2.3.1 #include: Einfügen von Header-Dateien 41  
        2.3.2 #define: einfache Ersetzung von Zeichenketten 42  
        2.3.3 #define: Makros mit Parametern 44  
        2.3.4 #ifdef, #if: bedingte Übersetzung 45  
     2.4 Übungsaufgaben 46  
  3 Kontrollstrukturen 48  
     Schnelleinstieg: Kontrollstrukturen 49  
     3.1 Blöcke 50  
     3.2 Bedingte Anweisungen 51  
     3.3 Schleifen 51  
     3.4 Ausnahmebehandlung 52  
     3.5 Übungsaufgaben 53  
  4 Datenorganisation 54  
     Schnelleinstieg: Datenorganisation 55  
     4.1 Skalare Datentypen 56  
        4.1.1 Zahlen- und Zeichentypen 56  
        4.1.2 Wahrheitswerte 58  
        4.1.3 Operationen 59  
     4.2 Konstanten und Variablen 61  
        4.2.1 Konstanten 61  
        4.2.2 Definition und Initialisierung von skalaren Variablen 62  
        4.2.3 Wertzuweisungen 62  
     4.3 Arrays 63  
        4.3.1 Eindimensionale Arrays 63  
        4.3.2 Mehrdimensionale Arrays 66  
        4.3.3 Zeichenketten 67  
        4.3.4 Arrays in C99 69  
     4.4 Strukturen 70  
        4.4.1 Grundlegende Eigenschaften von Strukturen 70  
        4.4.2 Strukturtypen 72  
        4.4.3 Schachtelung von Strukturen 72  
     4.5 Unions und Bitfelder 73  
        4.5.1 Unions 73  
        4.5.2 Bitfelder 74  
     4.6 Selbstdefinierte Wert- und Typnamen 76  
        4.6.1 Aufzählungstypen 76  
        4.6.2 Der typedef-Operator 76  
     4.7 Übungsaufgaben 78  
  5 Zeiger 80  
     Schnelleinstieg: Zeiger 81  
     5.1 Java-Objektvariablen vs. C-Zeigervariablen 82  
     5.2 Grundlegende Begriffe und Operatoren 84  
        5.2.1 Speicheradressen und Zeigervariablen 84  
        5.2.2 Adress- und Dereferenzierungsoperator 86  
        5.2.3 Zwei Programmbeispiele 88  
        5.2.4 Ungetypte Zeiger 89  
     5.3 Adressarithmetik 89  
        5.3.1 Operationen 89  
        5.3.2 Adressarithmetik bei Arrays 91  
        5.3.3 Exkurs: Zeichenkettenvariablen und -konstanten 94  
     5.4 Dynamische Speicherverwaltung 95  
        5.4.1 malloc() 95  
        5.4.1.1 Objekterzeugung in Java vs. Speicherbelegung in C 95  
        5.4.1.2 Definition von malloc() 96  
        5.4.2 free() 96  
        5.4.3 Arrays mit dynamisch bestimmter Größe 97  
        5.4.4 Zwei Programmbeispiele 98  
     5.5 Zeiger auf Strukturen 100  
        5.5.1 Arrays mit Zeigern auf Strukturen 100  
        5.5.2 Strukturen mit Zeigern auf Strukturen 101  
     5.6 Zeiger auf Zeiger 103  
     5.7 Übungsaufgaben 104  
  6 Funktionen 106  
     Schnelleinstieg: Funktionen 107  
     6.1 Java-Methoden vs. C-Funktionen 108  
     6.2 Schnittstellen 110  
        6.2.1 Prototypen 110  
        6.2.2 Weitere Besonderheiten von C 112  
     6.3 Ausführung 115  
        6.3.1 Ablauf 115  
        6.3.2 Parameterübergabe 115  
           6.3.2.1 Wertaufruf 116  
           6.3.2.2 Referenzaufruf 116  
           6.3.2.3 Übergabe von Arrays 118  
        6.3.3 Ergebnisrückgabe 120  
     6.4 Das Hauptprogramm main() 121  
     6.5 Speicherklassen 123  
        6.5.1 Lokale Variablen 123  
           6.5.1.1 Automatische Variablen 123  
           6.5.1.2 Statische Variablen 124  
           6.5.1.3 Registervariablen 125  
        6.5.2 Externe Variablen 125  
           6.5.2.1 Programme in einer einzelnen Datei 126  
           6.5.2.2 Programme in mehreren Dateien 127  
        6.5.3 Tabellarische Zusammenfassung 129  
     6.6 Funktionsbibliotheken 129  
        6.6.1 Definition und Benutzung 129  
        6.6.2 Die Standardbibliothek 130  
           6.6.2.1 Funktionen für Zeichen und Zeichenketten 131  
           6.6.2.2 Mathematische Funktionen 133  
           6.6.2.3 Betriebssystemnahe Dienste 134  
     6.7 Nutzungsmöglichkeiten für Fortgeschrittene 136  
        6.7.1 Zeiger auf Funktionen 136  
        6.7.2 Funktionen als Parameter 138  
        6.7.3 Funktionen mit variabler Anzahl von Parametern 139  
     6.8 Übungsaufgaben 140  
  7 Ein-/Ausgabe und Dateizugriffe 143  
     Schnelleinstieg: Ein-/Ausgabe und Dateizugriffe 144  
     7.1 Grundlegende Konzepte 145  
        7.1.1 Datenströme in Java und in C 145  
        7.1.2 Standarddateien 147  
        7.1.3 Klassen von E/A-Funktionen 147  
     7.2 Funktionen für die Standardein-/-ausgabe 149  
        7.2.1 printf(): formatierte Ausgabe 149  
           7.2.1.1 Grundidee 149  
           7.2.1.2 Allgemeine Form 150  
           7.2.1.3 Weitere Beispiele 150  
        7.2.2 scanf(): formatierte Eingabe 151  
           7.2.2.1 Grundidee 151  
           7.2.2.2 Allgemeine Form 152  
           7.2.2.3 Pufferung der Eingabedaten 153  
           7.2.2.4 Weitere Beispiele 154  
        7.2.3 Weitere Funktionen für Zeichen und Zeichenketten 157  
     7.3 Funktionen für beliebige Datenströme 158  
        7.3.1 Öffnen und Schließen 158  
        7.3.2 Ein-/Ausgabe einzelner Zeichen 161  
        7.3.3 Ein-/Ausgabe von Zeichenketten 162  
        7.3.4 Formatierte Ein-/Ausgabe 162  
        7.3.5 Ein-/Ausgabe beliebiger Bytefolgen 163  
        7.3.6 Wahlfreier Zugriff 165  
        7.3.7 Spezielle Funktionen 167  
     7.4 Operationen auf dem Dateisystem 168  
     7.5 Übungsaufgaben 169  
  8 Dynamische Datenstrukturen 170  
     Schnelleinstieg: Dynamische Datenstrukturen 171  
     8.1 Dynamische Datenhaltung in Java und in C 172  
     8.2 Listen 173  
        8.2.1 Eigenschaften 173  
        8.2.2 Einfach verkettete Listen 174  
           8.2.2.1 Typ der Knoten 174  
           8.2.2.2 Durchlaufen einer Liste 175  
           8.2.2.3 Suchen von Einträgen 176  
           8.2.2.4 Einfügen von Knoten 176  
           8.2.2.5 Entfernen von Knoten 179  
        8.2.3 Doppelt verkettete Listen 182  
           8.2.3.1 Typ der Knoten 182  
           8.2.3.2 Durchlaufen einer Liste 183  
           8.2.3.3 Suchen von Einträgen 183  
           8.2.3.4 Einfügen von Knoten 184  
           8.2.3.5 Entfernen von Knoten 186  
        8.2.4 Queues und Stacks 188  
           8.2.4.1 Queues 188  
           8.2.4.2 Stacks 189  
     8.3 Hashtabellen 189  
        8.3.1 Eigenschaften 190  
        8.3.2 Realisierung in Java und in C 190  
     8.4 Bäume 192  
        8.4.1 Eigenschaften 192  
        8.4.2 Binärbäume 193  
           8.4.2.1 Eigenschaften und Beispiele 193  
           8.4.2.2 Realisierung in C 195  
           8.4.2.3 Durchlaufen eines Binärbaums 196  
           8.4.2.4 Löschen eines Binärbaums 199  
           8.4.2.5 Suchen eines Werts in einem Suchbaum 199  
           8.4.2.6 Einfügen eines Werts in einen Suchbaum 199  
           8.4.2.7 Löschen eines Werts aus einem Suchbaum 201  
     8.5 Mengen 203  
        8.5.1 Realisierung durch Listen und Bäume 203  
           8.5.1.1 Grundlegende Mengenoperationen auf C-Listen 203  
           8.5.1.2 Bilden der Vereinigungsmenge 204  
           8.5.1.3 Bilden der Differenzmenge 205  
           8.5.1.4 Bilden der Schnittmenge 206  
        8.5.2 Realisierung durch Bitmaps 206  
     8.6 Übungsaufgaben 209  
  Anhang 210  
     A Auswertung von Ausdrücken 210  
        A.1 Implizite Typkonversionen 210  
           A.1.1 Konversionen in Rechenausdrücken 210  
           A.1.2 Konversionen bei Zuweisungen 211  
        A.2 Sequenzpunkte 213  
        A.3 Bindungsstärken und Auswertungsreihenfolgen 213  
     B Vordefinierte Konstanten 214  
        B.1 Wertebereiche der skalaren Typen 214  
        B.2 Mathematische Konstanten 215  
     C Standardbibliothek 216  
        C.1 Dateizugriffe und Ein-/Ausgabe 216  
           C.1.1 Thematische Übersicht über die Funktionen 216  
           C.1.2 Funktionen in alphabetischer Reihenfolge 218  
        C.2 Zeichen, Zeichenketten und Bytefolgen 230  
           C.2.1 Test einzelner Zeichen 230  
           C.2.2 Umwandlung von Zeichen 231  
           C.2.3 Zeichenketten 231  
           C.2.4 Bytefolgen/Arrays 232  
           C.2.5 Konversionen 233  
        C.3 Mathematische Funktionen 234  
        C.4 Betriebssystemnahe Dienste 235  
           C.4.1 Dynamische Speicherverwaltung 235  
           C.4.2 Zeitfunktionen 236  
           C.4.3 Weitere Funktionen 237  
     D Häufig gebrauchte Tabellen 238  
        D.1 ASCII 238  
        D.2 Variablengrößen und Wertebereiche 239  
        D.3 Bindungsstärke von Operatoren 240  
        D.4 Optionen für fopen() 241  
        D.5 Konversionsangaben für die Ein-/Ausgabe 242  
        D.5.1 printf() 242  
        D.5.2 scanf() 244  
  Literatur und Internet 245  
     Bücher 245  
     Standardisierungsdokumente 245  
     Internet-Quellen 246  
  Index 247  
  Mehr eBooks bei www.ciando.com 0  

Kategorien

Service

Info/Kontakt