C für Dummies
Häftad, Tyska, 2021
Av Dan Gookin
419 kr
Beställningsvara. Skickas inom 3-6 vardagar
Fri frakt för medlemmar vid köp för minst 249 kr.C erfreut sich als Klassiker unter den Programmiersprachen großer Beliebtheit, denn es steckt nach wie vor in vielen Betriebssystemen, Schnittstellen und Treibern, aber auch in Compilern und neueren eingebetteten Systemen. Wer C lernen und dabei auch noch Spaß haben möchte, sollte zu diesem Buch vom Urvater der Dummies, Dan Gookin, greifen. Mit viel Humor und vielen anschaulichen Beispielen macht er die Programmiersprache C lebendig.
Produktinformation
- Utgivningsdatum2021-04-07
- Mått176 x 240 x 34 mm
- Vikt1 106 g
- FormatHäftad
- SpråkTyska
- SerieFür Dummies
- Antal sidor640
- Upplaga3
- FörlagWiley-VCH Verlag GmbH
- ISBN9783527718450
- ÖversättareBäckmann, Marcus
Tillhör följande kategorier
Dan Gookin schrieb das erste "... für Dummies"-Buch "DOS für Dummies" und hat seitdem unzählige Bücher für die Reihe verfasst. Er versteht es besonders gut, anschaulich und humorvoll zu erklären.
- Über den Autor 11Einleitung 29Was bringt es, C zu lernen? 29Über dieses Buch 30Programme in diesem Buch 30Törichte Annahmen über den Leser 31Wie dieses Buch aufgebaut ist 32Teil I: Das erste Programm 32Teil II: Grundlegendes Sprachverständnis 32Teil III: Einfache Datenstrukturen und Zeiger 32Teil IV: Daten speichern und verwalten 32Teil V: Der Top-Ten-Teil 32Symbole, die in diesem Buch verwendet werden 33Schlussgedanken 33Teil I: Das erste Programm 35Kapitel 1 In zehn Schritten zum ersten Compiler 37Die Installation der IDE 37Code::Blocks installieren 38Die Compilereinstellungen 40Ihr erstes Programm 43Welches C hätten Sie gern? 43An die Tastatur! 44Den C-Code eingeben 46Ihr Programm erstellen 48Ihr Programm ausführen 48Ein Wort zu Code::Blocks und Spenden 49Kapitel 2 Der (zumeist harmlose) Einstieg 51Die kurze und banale Geschichte von C 51Wie aus einer süßen kleinen Textdatei ein Programm wird 52Der Entwicklungsprozess in C 53Der Quelltext (oder auch Sourcecode) 54Der Compiler 54Der Linker 56Das erste C-Programm – eine alte Tradition 56Speichern! Kompilieren! Linken! Starten! 57Die notwendigen Editier- und Kompilierkünste 58Die Quelltextdatei ändern 59Neukompilierung (oder: Spielʼs nochmal in der Sprache C) 60Raus mit den alten Sachen, lasst uns was Neues machen 60Mit Fehlern auf Du und Du 61Mist! Ein Fehler Aber bevor Sie aus dem Fenster springen … 61Junge, was ʼn Fehler! 63Das fehlerhafte Programm reparieren 64Die fürchterlichen Linkerfehler 65Linkerfehler beheben 66Wie die Sprache C aussieht 67Der große Zusammenhang 67Stückliste 69Die Sprache C mit ihren Schlüsselwörtern 70Andere Sprachelemente von C 71Eingaben und Ausgaben (die hier mal was Gutes sind) 72Stellen Sie sich bei Herrn Computer vor 72Die Belohnung! 73Erst das Chaos, dann die Ordnung 75Der C-Compiler räumt sein Zimmer nicht auf 75Was aufheben, was wegwerfen? 75Organisation ist alles! 76Wichtige C-Regeln, an die Sie nie denken werden 77Das hilfreiche Regelprogramm 77Zeit für eine Bonusrunde 78Kapitel 3 Einfache C-Programme basteln 81printf (wer bei print an Drucken denkt, liegt falsch) 81Ein anderes »printf macht was Lustiges«-Programm 82Noch mehr lustige Texte 83Einige Escape-Sequenzen 85Das f steht für formatiert 85Richtʼ Euch! 86scanf – lassen Sie Ihren Scanner trotzdem aus! 88scanf richtig einsetzen 89scanf im scharfen Einsatz 91Kleine Änderungen an Whoru.c 92Das Wunder von %s 93Zeit für Experimente 93Bemerkungen, Kommentare und Vorschläge 95Darf ich um einen kurzen Kommentar bitten? 95Kommentarstile 96Wieso sind Kommentare notwendig? 96Bizzare Kommentare 97Kommentare als Schalter 98Vermeidung »verschachtelter« Kommentare 99fgets und puts 100Und tschüss scanf, willkommen fgets 101Ein unfreundliches Programmbeispiel 101Das finstere Geheimnis der Sprache C 101Sichere Dateneingaben 102put – put – putputput – puts 103Noch eine doofe Spielerei 104puts und Variablen 105Licht! Kamera! Action! puts und fgets die Zweite 105Mehr Spaß mit printf 107Das alte »Text mit printf ausgeben« 108Die Escape-Sequenzen von printf 108Das Deluxe-Testprogramm für Escape-Sequenzen 109Weitere Tests mit Printfun 110Wieder mal die Komplexität des printf-Formats 111Die Konvertierungszeichen von printf 112Kapitel 4 Variablen und Mathe 115Die sich ständig ändernde Variable 115Strings ändern sich 116Willkommen in der Welt der numerischen Variablen 117Benutzung der ersten Integervariablen 118Zuweisung von Werten an numerische Variablen 119Die Eingabe von Zahlen über die Tastatur 120Wie alt war Methusalem? 122Mehr numerische Variablen und ein bisschen Mathe 124Wieder auf der Jagd 124Eine Portion Mathe 125Wie lange brauchen Sie, um Methusalems Rekord zu brechen? 126Methusalem: Bonusrunde! Jedes Los ein Gewinn! 127Das unmittelbare Ergebnis 128Diskurse, Diskussionen und die Definition von Variablen 129»Warum muss ich eine Variable definieren?« 130Verbotene und erlaubte Variablennamen 131Vordefinieren von Variablen 131Ein x-beliebiges Beispiel für Variablen 133Mehrfachdeklarationen 134Konstanten und Variablen 135Träume von Freiheit und mehr Konstanz 135Eine praktische Abkürzung 136Das Schlüsselwort const 137Der dritte Weg 138Malen mit Zahlen 140Zahlen in C 140Wieso nimmt man int? 142Mit oder ohne Vorzeichen – das ist hier die Frage 142Wie bringt man eine Zahl eigentlich zum Fließen? 143»Hey EIX32A, lass uns mal ein Fließkommaprogramm schreiben!« 144Die Sache mit der E-Notation 145Doppelt so groß wie float? Das ist double! 147Bringen Sie Ihren Zahlen Format bei! 148Die etwas andere Variable: char 149Variablen mit einzelnen Zeichen 149Variablen mit Zeichen abfüllen 151Kitzelt eine Tasteneingabe den Computer? 151Zeichenvariablen als Werte 152Die erste wirkliche Mathestunde 154Ein sehr knapper Überblick über die Operatoren 154Das alte »Wie groß bist du?«-Programm 155Heimtückische Änderungen an unserer Größenberechnung 156Die hohe Kunst des Inkrementierens 157Weniger lustig: Gewichtszunahme 157Bonusprogramm! (Irgendwann nützt es Ihnen was) 158Wer hat den Vortritt? 160Ein Beispiel aus einer Examensklausur 160Punktrechnung vor Strichrechnung 161Klammern haben den Vortritt 162Teil II: Grundlegendes Sprachverständnis 165Kapitel 5 Wir stehen vor einer großen Entscheidung 167Die mächtige if-Anweisung 168Der Computer als Genie 168Das Schlüsselwort if ganz aus der Nähe 170Eine Anmerkung zur Schreibweise der if-Anweisung 174Die endgültige Lösung für die Steuerproblematik 174Gut, wennʼs nicht wahr ist, was ist es dann? 176Mit einem else alle Möglichkeiten abdecken 176Eine Anmerkung zur Schreibweise 179Der Sonderfall else-if und viel mehr Entscheidungen 180if mit Zeichen und Strings 181Die zahlenlose Welt von if 181Was ist größer: S oder T, $ oder -? 182if und der Vergleich von Strings 183Wie schreibt man richtig in C? Lektion 1 183Immer von oben nach unten 184Formatierungen des Quellcodes 184Einrückungen, Teil 2 185Vergessen wir kurz die Formatierung 186Andere Möglichkeiten 186for knüpft Schleifen 187Wiederholte Wiederholungen 189for formt die Schleifen 190Wie in der Grundschule: Zählen bis 100 192Schleifen fabrizieren 194Endlich – das nützliche ASCII-Programm 194Vorsicht, Endlosschleifen! 195Schleifen gewaltsam abbrechen 197Das Schlüsselwort break 198Abkürzungen und die Kunst des Inkrementierens 199Kryptische C-Operatoren, Teil 1: ++ 199Bahn frei, jetzt komm ich! 200Rückwärtszählen: nelhäz sträwkcüR 201Rückwärtszählen passt sehr gut zum for 202Kryptische C-Operatoren, Teil 2: −− 202Eine abschließende Verbesserung von Ollyolly.c 203Je mehr Inkrement, desto mehr Wahnsinn 204Schleifen mit Sprüngen 204Kryptische C-Operatoren, Teil 3: Jetzt wird’s verrückt 205Kapitel 6 Ihre persönlichen Funktionen 207Die allererste Funktion schreiben 207Dieses Programm braucht eine Funktion 209Die nützliche Funktion idiot() 210Das Tao der Funktionen 211Zur Namensgebung von Funktionen 212Ein Wort zum Prototyping 213Variablen innerhalb von Funktionen 215Bomben frei mit dem Bomber-Programm 215Bringt die doppelte Variable Bomber.c zur Explosion? 216Ein weiterführendes Beispiel 217Brüderliches Teilen von Werten mithilfe globaler Variablen 219Eine globale Variable erzeugen 219Ein Beispiel für eine globale Variable 220Funktionen ein Päckchen mit auf den Weg geben 222Funktionen mit einer echten Funktion 224Wie man einer Funktion einen Wert schickt 225Unbedingt lesen: Variablenwirrwarr vermeiden 226Mehr als einen Wert an eine Funktion übergeben 226Wie man Strings an Funktionen übergibt 228Funktionen mit Ergebnissen 230Endlich sagt der Computer mal was Gutes über Sie 231Fehlerbeseitigung in Iq.c mit dem beliebten Typecasting-Trick 232Mit return zurück an den Absender 234Gib dem Mann mal einen Bonus! 235Das Zwiebelschalenprinzip 237Funktionen arbeiten von innen nach außen 238Veränderungen am Programm Iq.c 239Ein gängiges Beispiel für if 240Das alte Spiel mit den Zufallszahlen 241Benutzung der rand-Funktion 242Zufallszahlen initialisieren 244Mehr Zufall im Zufallsprogramm 245Verbesserungen am Zufallszahlenprogramm 246Der teuflische Dr Modulo 248Die Würfel sind gefallen 250Kapitel 7 Feinschliff für die C-Künste 253Dieses Zeug drängelt sich immer vor (der Rest folgt dem #) 253Bitte vergiss mein nicht! 254Ihre eigene h-Datei erstellen 257Wofür #define gut ist 259Makros erwähnen wir besser erst gar nicht 260Wie man Eingaben vom Benutzer bekommt 262Die Tastatur abhören 262Das fürchterliche Ratespiel 263Die Shell beklauen (wie man die Kommandozeile abhört) 265Da gehen einem die Argumente aus – main passiert das nie 266Also, irgendwelche Argumente dafür? 267Anzeige der Argumente 268Wiederholungen sind gut 270Ihr Gewicht auf dem Mond 272Noch mehr ifs 274Auswertung von mehreren Bedingungen in if-Abfragen 275Wer ist schlauer? Melvin oder Poindexter? 277Gutes p, schlechtes P 279Weitere Weisheiten 280Nun zu den schlechten Nachrichten 280Mehr über Variablen 281Typecasting und andere Probleme 281Grundlagen der Typumwandlung 282Die lange und die kurze Form 282Die Konfusion weicht allmählich 283signed und unsigned 284unsigned Variablen haben eine negative Einstellung 285Faire und unfaire Variablen 286Ein anderes Kapitel über Zahlen (die Sache mit der Hexerei) 286Zahlensysteme und ihre Basis 287Hexereien 288Inhaltsverzeichnis 21Kapitel 8 Schleifen knüpfen 291Fakten zu while-Schleifen 291Die erste Schleife binden 292Das Schlüsselwort while 293Was ist besser geeignet: while oder for? 295Tausche unschönes for(;;) gegen elegantes while 296Den Spieß umgedreht: do-while-Schleifen 297while macht Kopfstände – do-while 298De-tail von do-while 300Trau niemals dem User – ein Fehler in Countdown.c 301Die garantiert richtige Eingabe 302Der bizarre Fall while TRUE (und sonstige Kuriositäten) 303Fragestunde 303Feintuning für Yorn.c 305»Kochen, bis es gar ist« 306Yorn.c als Funktion 307Verschachtelte Schleifen und anderer Unsinn für Angeber 309Verschachtelte Anwendungen 310Schleifen und das heimtückische switch-case 311Die Lösung mit switch-case 313Der alte Trick mit switch-case 315Eine besondere Beziehung zwischen while undswitch-case 318Kapitel 9 Zwischenstand und Reste essen 321Selbsttest via Hallo, Welt! 321Das Hallo-Welt-Programm 322Weiter geht’s – ein närrisches Hallo-Welt-Programm 322Halt die Welt an, ich möchte aussteigen! 323Die Behandlung der Überbleibsel 326Die Lösung mittels while-Schleife 328Mehr über die math.h-Library 329Die Probleme in einer höheren Potenz 330Autsch! Wurzeln ziehen 333Lästige Mathematik? – Sie packen das 334Etwas wahrhaft Merkwürdiges zum Schluss 335Die Gefahren der Benutzung von a++ 336Ja, und das Gleiche gilt für -- 337Wiederholung des ++a-Phänomens 338goto-Anweisung – nein danke 338Was ist nun goto? 339Ein Beispiel, wie man goto nicht verwenden sollte 340Alternativen zu goto 342Und tschüss … – das Programm verlassen 344exit – der Notausgang 344Zuletzt das berüchtigte Ask-Programm 345Eine sinnlose Batchdatei als Beispiel 348Teil III: Einfache Datenstrukturen und Zeiger 349Kapitel 10 Arrays und Strings 351Wozu Arrays? 351Wie man Arrays benutzt 352Ein einfaches Programm, bevor es zu langweilig wird 353Arrays in C erstellen 354Auf die Elemente eines Arrays zugreifen 356Werte an ein Array zuweisen 357Alt, aber brauchbar 359Strings und Arrays 362Das Ende eines Strings (das Nullbyte) 363Köder auslegen 364Die Falle 366Gegen den Buffer-Overflow 367Arrays jeder Sorte 369Sortier mich, aber schnell 369Sortieren 371Eine unverschämt große Menge Zahlen sortieren 373Kapitel 11 Strings und so Zeugs 377Strings und Zeichen 377Das Programm »Mach mich GROSS« 378Eine bessere Möglichkeit, einen String zu durchlaufen 380Ein total verdrehter String 382Texte verflechten 384Strings in C kopieren 386Strings zerlegen 387Sesam öffne dich 390Stringmanipulationen 392Strings verbinden 392Die Stringfunktionen zusammengefasst 395Arrays jenseits der ersten Dimension 395Vereinbarung eines zweidimensionalen Arrays 396Vereinbarung eines initialisierten zweidimensionalen Arrays 397Zugriff auf die Elemente eines zweidimensionalen Arrays 399Ein Array aus Strings 400Arrays in der Grauzone 404Dreidimensionale String-Arrays 406Wieder hinter den sieben Bergen bei den sieben Zwergen 407Kapitel 12 Die finstersten Aspekte von C: Zeiger 411Ein unhandliches und starres Speicherkonzept 411Land kaufen, aber kein Haus bauen 412Mehr oder weniger gefräßige Variablen 414Die Größe eines Arrays berechnen 416Lange Rede, kurzer Sinn 417Adresse, Adresse, Adresse 418Ein etwas simples Programm als brauchbares Beispiel 418Hallo, Herr Zeiger! 420Das zweite Metric-Programm 421Die Vereinbarung der Zeigervariablen 422Zeiger zum Speichern von Adressen benutzen 423Was weiß nun das Programm? 423Oh Schreck – eine kleine Übung zur Selbstkontrolle 425Nun die Adresse der letzten Variablen 425Mehr Zeiger, mehr Speicher, Wahnsinn ohne Ende 427Römische Zahlen (und wieder eine Ausnahme) 430Noch mehr Römer 432Das total verdorbene Römer-Programm 433Und nun das Sternchen, bitte schön 434Rückblick 434Zeiger, die zeigen und schauen 435Der Zeiger als neugieriger Postbote 435Noch mehr Durcheinander mit den *-Zeigern 437Ein Zeiger und mehrere Variablen 438Zeiger und Arrays 439Ein Array mit einem Zeiger durchlaufen 440Nun eine wahrhaft schwer zu knackende Nuss 442Zeiger, Klammern, Arithmetik – puh 443Zeiger sollen Arrays nicht ersetzen 444Zeit, einen Schnitt zu machen 445Die Beziehung zwischen Zeigern und Array-Klammern 446Beseitigung aller Spuren der Array-Notation 447Ungläubige können ja nachprüfen 447Weitere Prüfung 448Zum guten Schluss: Der Hauptunterschied zwischenZeigern und Arrays 448Kapitel 13 Erste Anwendungen der Zeiger 451Zeiger und Strings 451Eine unmögliche Art, einen String auszugeben 451Eine bessere Möglichkeit, einen String anzuzeigen 453Mehr Tricks 454Noch mehr Tricks 454Ein allerletzter Trick 455Die Tiefen der Bibliotheksdefinitionen 456Oh! String! String! String! 457Noch so eine irreführende Sache 458Vereinbarung eines Strings mit einem char-Zeiger 460Übergabe von Zeigern an Funktionen 461Rückblick zu Zeiger-Problemen 461Botschaften aus dem Jenseits 463Übergabe von Arrays an und von Funktionen 468Übergabe eines char-Arrays an eine Funktion 469Die verbotenen Vokale 470Übergabe beliebiger Arrays an Funktionen 473Analyse der caffeine-Funktion 476Funktionen, die ihre Variablen töten 477Arrays aus Zeigern 478Zeiger und Arrays 478Ein String-Zeiger-Array erzeugen 479Ein Beispielprogramm 481Das Zeiger-Array der Kommandozeile 482Was zum Kuckuck ist das nun? 483Zeiger (auch in Arrays) sind Variablen 485Sortieren von Strings mit Zeigern 486Ein einfaches und falsches Sortierprogramm 486Was war falsch? 488Die entsetzlichen Indirekt-Zeiger 488Sortieren von Strings nach allen Zeichen 491Kapitel 14 Alles über Strukturen 497Mehrfachvariablen 497Das Leben ohne Strukturen 498Mit Arrays geht es nicht viel besser 500Wir brauchen eine Karteikarte 501Fakten zu Strukturen 503Noch einmal das Passwort-Programm 506Arrays aus Strukturen 508Alles in einem Array 510Der Rest der Mannschaft von Oz 511Strukturkomponenten kopieren 514Strukturen und Funktionen 518Ein spezieller Rückblick: Vereinbarung einer globalen Variablen 519Hey, Funktion, hier kommt eine Struktur! 519Verschachtelte Strukturen 522Rückgabe einer Struktur aus einer Funktion 524Großer Dank gilt der Funktion malloc 530Ein Beispiel ohne zusätzlichen Speicherplatz 531Oh malloc, gib mir mehr Platz 532Borgen und nicht wiedergeben ist wie gestohlen 533Nun die richtige Speicherbereitstellung für Howdy.c 535Strukturen und (schon wieder!) Zeiger 537Was Sie brauchen, um eine Struktur im Speicher anzulegen 537Das erste Programm mit Zeiger und Struktur 538Eine leere Zeigerhülle 541Teil IV: Daten speichern und verwalten 543Kapitel 15 Die Festplatte als Diener 545Hello Disk! 545Ein kleines Textstück auf die Platte schreiben 546Wie die Arbeit mit Dateien funktioniert 547Etwas aus einer Datei lesen 550Versehentliches Überschreiben verhindern 552Binär oder Text – das ist hier die Frage 555Ein eigenes type-Programm 555Ein Dump erstellen 558Formatierte Ein-/Ausgabe 560Die formatierte Ausgabe 561Formatierte Eingabe aus Dateien 562Ein Array in eine Datei schreiben 563Ein Array aus der Datei lesen 564Daten lesen und schreiben 566Das Grundgerüst für ein Programm zum Speichern von Strukturen 566Eine Struktur in eine Datei schreiben 568Die Funktion write_info 569Die read_info-Funktion 571Kapitel 16 Dynamische Datenstrukturen 575Dynamische Arrays 575Arrays mit variabler Länge 576I’ werd’ narrisch: variable Stringlängen 578Kurzer Rückblick zur Datenspeicherung 580Wie verkettete Listen arbeiten 582Die erste Struktur 583Eine Struktur mehr und der Link darauf 584Und nun der Rest 586Die NULL kennzeichnet das Ende 588Kapitel 17 Die Geburt unserer Datenbank 591Das unvermeidliche Bankkontenprogramm 591Das BANK-Programm 591Was bereits funktioniert 595Datensätze aus Listen löschen 597Überflüssige Datensätze entfernen 598Die Funktion deleteAccount() 599Die Arbeitsweise der Funktion deleteAccount 601Einmal vom Speicher zur Disk und zurück 602Die Liste auf Platte speichern 602Eine verkettete Liste von Platte laden 604Teil V: Der Top-Ten-Teil 607Kapitel 18 Cehn Gründe für C im Jahr 2020, 2021, 2022 … 609C++, C#, Java, PHP und die anderen {} 609C ist schlank 609C ist Fahren ohne ABS und ESP 610C ist die Sprache der APIs und Kernel 611C ist 31337 611C ist die Sprache der Aufzüge und Kühlschränke 611C ist allgegenwärtig 612C ist die Sprache der Schnittstellen 612C treibt die Dinge voran 612C ist wichtig … 612Kapitel 19 Zehn Empfehlungen zum Schreiben unlesbarer Programme 613Lügen Sie in den Kommentaren 613Verwenden Sie möglichst kurze Variablennamen 614Nutzen Sie Copy&Paste ausgiebig 614Stöbern Sie im Thesaurus 614Legen Sie sich niemals fest 615Wenn’s mit dem Englisch hapert 615Ziehen Sie Schreibfehler konsequent durch 615Seien Sie modern und geben Sie Ihren Quellcode frei 616Finden Sie Workarounds für eigene Fehler 616Verzichten Sie auf lesbare Codeformatierungen 617Kapitel 20 Zehn nützliche Internetadressen zu C 619Stackoverflow 619A Programmer’s Heaven 619Codeguru.com 619C for Dummies 620Nachschlagewerk zur Bibliothek 620Noch ein Nachschlagewerk 620Der C-Standard 620Der Compiler – Code::Blocks 620Visual Studio Express Editions 621c++.net 621Stichwortverzeichnis 625