dummies
 

Suchen und Finden

Titel

Autor/Verlag

Inhaltsverzeichnis

Nur ebooks mit Firmenlizenz anzeigen:

 

C für Java-Programmierer

Carsten Vogt

 

Verlag Carl Hanser Fachbuchverlag, 2007

ISBN 9783446411326 , 251 Seiten

Format PDF, OL

Kopierschutz Wasserzeichen

Geräte

24,90 EUR

Für Firmen: Nutzung über Internet und Intranet (ab 2 Exemplaren) freigegeben

Derzeit können über den Shop maximal 500 Exemplare bestellt werden. Benötigen Sie mehr Exemplare, nehmen Sie bitte Kontakt mit uns auf.

  • Erst ich ein Stück, dann du - Sachgeschichten & Sachwissen - Dinosaurier - Für das gemeinsame Lesenlernen ab der 1. Klasse
    Einfach fantastisch! - Neue Rezepte, Tipps & Tricks der Spitzenköchin -
    Die wunderbare Welt der Rosie Duncan - Roman
    Ich koch' einfach! - Lieblingsrezepte mit regionalen Produkten
    Sterben - Roman
    Briefe vom miesesten Ort des Universums
    Ruby on Rails für JEE-Experten - Umfassender Einstieg in Rails und JEE-Integration mit JRuby
    Enterprise JavaBeans - Die 3. Generation
 

 

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