Programmierung · 3 min read · Nov 18, 2025

Linux C Programmierung Tutorial Teil 19: Zeiger und Arrays

Bis jetzt haben wir in dieser fortlaufenden C-Programmierungstutorial-Serie die Grundlagen von Zeigern kurz besprochen. Es gibt jedoch noch mehrere weitere zeigerbezogene Konzepte, die diskutiert werden müssen. In diesem Tutorial werden wir das Konzept von Zeigern und Arrays besprechen.

Bevor wir mit Zeigern und Arrays beginnen, lassen Sie uns schnell das grundlegende Konzept von Zeigern selbst auffrischen. Zeiger sind eine besondere Art von Variablen, die Adressen halten können. Zum Beispiel kann ein Zeiger ‘ptr’ auf ein Zeichen wie folgt deklariert werden;

char *ptr;

Und Sie können das Ampersand-Zeichen verwenden, um eine Adresse darin zu speichern. Hier ist ein Beispiel:

char c = 'a';  
ptr = &c;

Jetzt enthält der Zeiger ‘ptr’ die Adresse der Variablen ‘c’. Alternativ können Sie auch sagen, dass ‘ptr’ jetzt auf die Variable ‘c’ zeigt.

Um auf den Wert der Variablen zuzugreifen oder ihn zu manipulieren, auf den der Zeiger zeigt, können Sie den *-Operator verwenden. Zum Beispiel, um den Wert der Variablen c von ‘a’ auf ‘b’ zu ändern, können Sie den Zeiger ‘ptr’ wie folgt verwenden:

*ptr = 'b';

Das folgende Programm sollte Ihnen eine bessere Vorstellung von diesen grundlegenden Zeigerkonzepten geben, die wir bisher besprochen haben:

#include   
  
int main()  
{  
 char c = 'a';  
 char *ptr = &c;  
   
 *ptr = 'b';  
   
 printf ("variable c = %c", c);  
  
 return 0;  
}

Hier ist die Ausgabe dieses Programms:

variable c = b

Sie können also sehen, dass mit einem Zeiger der Wert einer Variablen geändert wurde.

Zeiger und Arrays

Während Sie immer mehr Zeit mit dem Schreiben und Lesen von C-Code verbringen, werden Sie feststellen, dass Zeiger und Arrays oft zusammen verwendet werden. Zum Beispiel können Sie auf einzelne Elemente eines Arrays mit einem Zeiger zugreifen. Betrachten Sie den folgenden Code:

...  
...  
...  
char arr[] = {'a','b','c','d','e'}  
char *ptr;  
ptr = &arr[0]  
...  
...  
...

Hier zeigt der Zeiger ‘ptr’ auf das erste Element des Arrays ‘arr’, das, wenn Sie in Bezug auf Indizes sprechen, an Position null des Arrays sitzt. Jetzt können Sie den *-Operator mit ‘ptr’ verwenden, um den Wert, auf den der Zeiger zeigt, zuzugreifen oder ihn zu manipulieren.

Wenn Sie einmal einen Zeiger haben, der auf das erste Element eines Arrays zeigt, ist es einfach, auch auf andere Elemente des Arrays zuzugreifen. Zum Beispiel, wenn - im Kontext des obigen Codeausschnitts - Sie den folgenden Ausdruck irgendwo verwenden:

*(ptr+1)

dann können Sie auf das zweite Element des Arrays zugreifen, was Sie normalerweise auf folgende Weise tun:

arr[1] 

Effektiv bedeutet das, dass das Hinzufügen von 1 zu ‘ptr’ Sie zur Adresse des nächsten Elements im Array führt, und mit * können Sie auf den Wert zugreifen, der an dieser Adresse gespeichert ist. Ebenso führt das Hinzufügen von 2 Sie zum dritten Element … und so weiter.

Hier ist ein Programm, das Ihnen eine klarere Vorstellung von dem geben sollte, was wir gerade besprochen haben:

#include   
  
int main()  
{  
 char arr[] = {'a','b','c','d','e'};  
 char *ptr = &arr[0];  
   
 for(int i=0;i

Und hier ist die Ausgabe:

arr[0] ist a   
arr[1] ist b   
arr[2] ist c   
arr[3] ist d   
arr[4] ist e

Sie können also sehen, dass der Ausdruck ‘*(ptr+i)’ - wobei i von 0 bis zum letzten Index im Array variiert - es uns ermöglicht hat, auf alle Elemente des Arrays zuzugreifen.

HINWEIS 1: Der Name des Arrays, wenn er im Code verwendet wird, gibt Ihnen die Basisadresse des Arrays. Das bedeutet, dass der Name des Arrays und die Adresse seines ersten Elements dasselbe sind. Im Kontext eines Arrays ‘arr’ sind ‘&arr[0]’ und ‘arr’ dasselbe. Dies gilt auch für andere Elemente, was bedeutet, dass &arr[2] auch als (arr+2) geschrieben werden kann und so weiter.

HINWEIS 2: Wenn wir das, was wir im obigen Hinweis besprochen haben, erweitern, kann jede Darstellung eines Array-Elements in eine Zeigerdarstellung zerlegt werden. Zum Beispiel: arr[2] ist gleich ‘*(arr + 2)’.

HINWEIS 3: Während Sie eine Array-Adresse einem Zeiger zuweisen können, ist umgekehrt nicht gültig. Außerdem können Sie im Gegensatz zu Zeigern die ++- oder —Operatoren nicht mit dem Array-Namen verwenden. Allgemein gesagt, können Sie die Adressen, an denen die Array-Elemente ursprünglich gespeichert sind, nicht ändern.

Fazit

Dieses Tutorial konzentrierte sich auf das Konzept von Zeigern und Arrays, wie sie miteinander verbunden sind und wie Array-Elemente über Zeiger zugegriffen werden können. Gegen Ende haben wir auch einige wichtige Punkte besprochen, wenn es um Code geht, der Zeiger auf Arrays verwendet.

Versuchen Sie, diese Konzepte lokal auf Ihrem Computer auszuprobieren, um eine bessere Vorstellung davon zu bekommen, wie diese Dinge funktionieren, und bei Fragen oder Zweifeln hinterlassen Sie bitte einen Kommentar unten.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.