Mit Hilfe von Zeigern kann man Funktionen realisieren, die Felder als Eingabewert beziehungsweise als Rückgabewert besitzen. Es ist sogar möglich, Zeiger auf Funktionen zu setzen und damit Funktionen als Eingabewerte anderer Funktionen einzusetzen.
Es werden einfache Aufgaben besprochen, die grundlegende Eigenschaften von Feldern und Zeigern behandeln und die man nach einem ersten Durchgang durch diese Themen beherrschen sollte.
Vorgestellt werden die Schleife mit Zählvariable (for-Schleife), die kopfgesteuerte Schleife (while-Schleife) und die fußgesteuerte Schleife (do-while-Schleife). Ihre Behandlung erfolgt aber nur exemplarisch an typischen Anwendungen. Eine detailliertere Behandlung findet sich im entsprechenden Kapitel zu C++.
Die wichtigsten Konzepte der Programmiersprache C werden an einfachen Programm-Beispielen erläutert: HelloWorld-Anwendung zum Testen der Arbeitsumgebung, Konsolenein- und ausgaben, Deklaration und Initialisierung von Variablen, arithmetische und logische Operationen, Ablaufsteuerung mit Bedingung und Alternative. Zudem werden einige methodische Hinweise gegeben, wie man gerade als Anfänger beim Programmieren strukturiert vorgehen sollte.
Inhalt und Lernziele des Kapitels Einführung in die Programmiersprache C und in C-Zeiger.
Programmieraufgaben zur Anwendung von Feldern und Zeigern, die im Sinne der strukturierten Programmierung zu lösen sind. Die Quelltexte sollen in reinem C geschrieben werden, also keine Konzepte verwenden, die nur in C++ verfügbar sind.
Felder werden durch Zeiger organisiert und es ist gerade ein Charakteristikum der Sprache C, dass dies nicht nur intern verwendet wird, sondern dass man diesen Mechanismus selbst nutzen kann. Für den Einsteiger ist dies meist mit Schwierigkeiten verbunden, da man oft nicht entscheiden kann, mit welchem Objekt man gerade arbeitet (Zeiger oder Variable eines fundamentalen Datentyps). Die meisten der mit Feldern verbundenen Schwierigkeiten wie etwa die Zeigerarithmetik, die Ausgabe und der Vergleich von Feldern werden erklärt. Wie man Felder an Funktionen übergibt oder als Rückgabewert zurückerhält, wird im nächsten Kapitel erläutert.
In einem Feld werden mehrer Komponenten von gleichem Datentyp zu einem Objekt zusammengefasst. Die Anzahl der Komponenten muss bei der Deklaration angegeben werden und darf sich während der Laufzeit des Programmes nicht ändern. Der häufigste Fehler beim Umgang mit Feldern besteht im Zugriff auf Komponenten jenseits des deklarierten Bereichs, was zu unbestimmtem Verhalten des Programmes führen kann. Die unterschiedlichen Möglichkeiten zur Initialisierung eines Feldes werden vorgestellt. Felder können in beliebig vielen Dimensionen angelegt werden; besprochen werden hier nur eindimensionale Felder (Vektoren) und zweidimensionale Felder (Matrizen).
Zeiger sind Variable, deren Wert eine Adresse ist. Man kann sie mit der Adresse einer anderen Variable initialisieren. Da unterschiedliche Datentypen unterschiedlich großen Speicherplatz belegen, muss bei der Deklaration eines Zeigers angegeben werden, welchen Datentyp die Variable besitzt, auf deren Speicherplatz er verweist. Diese Eigenschaften von Zeigern und mit welchen Operatoren (Adressoperator, Indirektionsoperator) dies realisiert wird, wird hier ausführlich diskutiert. Als Anwendung wird gezeigt, wie man mit Zeigern Funktionen realisieren kann, die mehrere Rückgabewerte besitzen.