Uns die folgenden Aussagen überprüfen lassen:
int var_x;
int* ptrX;
var_x = 6;
ptrX = &var_x;
*ptrX = 12;
printf("value of x : %d", var_x);
Die erste Linie veranlaßt den Kompilator, einen Raum im Gedächtnis für eine Ganzzahl aufzuheben. Die zweite Linie erklärt dem Kompilator, Raum aufzuheben, um einen Zeiger zu speichern.
Ein Zeiger ist eine Speicherposition für eine Adresse. Die dritte Linie sollte dich erinnern die scanf Aussagen. Die Adresse „u.“ der Operator erklärt Compiler, zum Platz zu gehen, den er var_x speicherte und gibt dann die Adresse der Speicherposition zum ptrX.
Das Sternchen * vor einer Variable erklärt den Compiler, den Zeiger zu dereferenzieren und geht zum Gedächtnis. Dann kannst du Anweisungen zur Variable bilden, die an dieser Position gespeichert wird. Du kannst eine Variable beziehen und seine Daten durch einen Zeiger zugänglich machen. Uns ein Beispiel der Zeiger sehen lassen:
/* Abbildung des Zeigergebrauches */
#include <stdio.h>
int main()
{
int index, *pt1, *pt2;
index = 39; /* irgendein numerischer Wert */
pt1 = &index; /* die Adresse des Index */
pt2 = pt1;
printf("The value is %d %d %d\n", index, *pt1, *pt2);
*pt1 = 13; /* dieses ändert den Wert des Index */
printf("The value is %d %d %d\n", index, *pt1, *pt2);
return 0;
}
Der Ausgang des Programms wird angezeigt, wie folgt:
The value is 39 39 39
The value is 13 13 13 |
|