www.mikrocontroller.net

Zeiger

Zeiger (engl.: pointer) enthalten eine Speicheradresse an der Daten des vorgegebenen Typs erwartet werden. Mit ihnen wird direkt auf einen Ort im Speicher verwiesen. Der Typ des Zeigers gibt ausserdem Aufschluss auf die zu erwartende Speichermenge, die ein Datum an dieser Stelle im Speicher benötigt.

In C müssen Zeiger mit dem '*'-Operator dereferenziert werden, damit auf die Daten, auf die der Zeiger zeigt, zugegriffen werden kann. Der '&'-Operator liefert die Adresse des Elements zurück auf das der Operator angewandt wird.

int *ptr = (int *) 0x1100;    /* reserviere Speicher für einen Zeiger des 
                               * Typs 'int', der auf die Adresse '0x1100'
                               * im RAM zeigt. (int *) konvertiert dabei
                               * die Integerzahl 0x1100 in eine Adresse.
                               */
 
int a;                        /* reserviere Speicher für einen Integerwert */
 
*ptr = 1234;                  /* schreibe den Wert '1234' an die Adresse,
                               * auf die 'ptr' zeigt
                               */
 
a = *ptr;                     /* kopiere den Wert, auf den 'ptr' zeigt,
                               * in 'a' 
                               */
 
ptr = &a;                     /* kopiere die Adresse von 'a' in ptr        */
  • a enthält danach den Wert auf den ptr zeigt.
  • ptr enthält danach die Adresse an der der Speicher für a reserviert wurde.
webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net