Version: Test
©Raddy 2001

C-Lehrgang - XI                                          zurück

Zeigerarithmetik:
Addition einer
Konstanten
a-absatz.pcx (280 Byte)

Beispiel

c11scp3.pcx (11421 Byte)

Das folgende Programm legt drei Variablen (a,b,c) an, und 
einen Zeiger auf das erste Byte von a. Wir nehmen an, daß
das erste Byte von a an der Adresse 1004 gelegt wird. 
(siehe Bild). Dann wird der Zeiger zeig um 1 erhöht, sodaß 
der Zeiger auf das Byte 1008 zeigt. Dann wird der Zeiger 
nochmals um 1 erhöht, sodaß er auf Byte 1012 zeigt.

    #include <stdio.h>
    void main()
      {
         int a=333000, b=150, c=25000;
         int *zeig = &a;
         zeig = zeig +1; 
         zeig = zeig +1; 
      }

Anstatt zeig= zeig+1 hätte man natürlich auch zeig++ 
oder zeig += 1 schreiben können. 
  
a-absatz.pcx (280 Byte)

Verständnisfrage

Anfänger fragen sich oft, warum der Zeiger um 4Byte
weiterspringt, wenn der Zeiger um 1 erhöht wird.
Genau das ist aber der Unterschied zwischen einer
normalen Variablen und einer Zeigervariablen:

   Der Zeiger soll bei Erhöhung um 1 zur nächsten
   Variablen springen. Zeigt er gerade auf den
   Anfang einer Integervariable, so muß er um 
   4 Byte weiterspringen, denn eine Integervariable
   belegt 4 Byte (bei 32-Bit-Systemen).