====== C-Tutorial - Fortgeschrittene Themen ====== In den vorherigen Lektionen sind wir die [[basics|Grundlagen]] der Programmierung durchgegangen. Das war gewissermaßen das Grundvokabular, das erforderlich ist, um überhaupt etwas formulieren zu können. In den folgenden Lektionen werden wir das Wissen anwenden, vertiefen und vor allem werden wir beginnen, Programme zu schreiben, die wirklich etwas tun. Aber hier geht's also nicht mehr nur darum die Sprache C zu lernen, sondern wirklich programmieren zu lernen. ===== 1. Arrays ===== * Was ist ein Array? * Wie definiert man ein Array? * Initialisieren von Arrays * Lesen aus und Schreiben in ein Array * Wie funktioniert ein Array? [[arrays|lesen...]] ===== 2. Strings ===== * Was ist ein C-String? * Wie definiert man einen C-String? * Länge des Strings * Einzelne Zeichen suchen und austauschen * Definition von langen Strings [[cstrings|lesen...]] ===== 3. Zeiger ===== * Was ist ein Zeiger? * Der Nullzeiger * Der AddressOf-Operator * Der Dereferenzierungs-Operator * Verwandtschaft von Arrays und Zeigern * Zeiger als Arrays verwenden * Unterschiede zwischen Pointern und Arrays * Zeiger bei Funktionen * Zeiger prüfen - oder doch nicht? [[pointer|lesen...]] ===== 4. Übergabeparameter ===== * Was sind Kommandozeilenparameter? * Parameter für die main-Funktion * Parameter auslesen * Argumente verwenden [[params|lesen...]] ===== 5. Dynamische Speicherverwalteng ===== * Wozu braucht dynamische Speicherveraltung? * Den benötigten Speicher herausfinden * Speicher anfordern und freigeben * Zugriff auf den angeforderten Speicher * Ziel erreicht * Mit der Standard-C-Lib ins Ziel [[memory|lesen...]] ===== 6. Attribute ===== * Was sind Attribute? * unsigned * const * Konstanten * Read-Only-Speicherbereiche * Zeigerkonstanten * Scopes * static * volatile [[attribute|lesen...]] ===== 7. Strukturen ===== * Was sind Strukturen? * Strukturen definieren * Strukturen verwenden * Strukturen übergeben * Call-by-Value * Call-by-Pointer * Größe eines Datentyps * Speicher für Strukturen anfordern * Arrays mit Strukturen * Das Semikolon nach der Definition [[struct|lesen...]] ===== 8. Dateien ===== * Was sind Dateien aus Sicht eines C-Programms? * Die Größe einer Datei herausfinden * Eine Datei in den Speicher kopieren * Daten auf die Festplatte schreiben * Text- und Binärdateien * Formatierte Textausgaben [[files|lesen...]] ===== 9. Programmierstil ===== * Lesbarkeit * Variablennamen * eigene Datentypen verwenden * Kommentare * Klammern weglassen [[style|lesen...]] ===== 10. Optimierte Operatoren ===== * Kombinierte Zuweisungsoperatoren * Inkrement- und Dekrementoperatoren [[quickops|lesen...]]