Gewusst wie: Inkrementieren und Dekrementieren von Zeigern (C#-Programmierhandbuch)

Verwenden Sie die Operatoren zum Inkrementieren und Dekrementieren (++ und --), um die Zeigerposition eines Zeigers vom Typ pointer-type* um sizeof (pointer-type) zu ändern. Die Ausdrücke zum Inkrementieren und Dekrementieren haben folgende Form:

++p;  
p++;  
--p;  
p--;  

Die Operatoren "Inkrement" und "Dekrement" können mit Ausnahme des void*-Typs auf Zeiger jeden Typs angewendet werden.

Durch die Anwendung des Operators "Inkrement" auf einen Zeiger vom Typ pointer-type wird sizeof (pointer-type) zur Adresse hinzugefügt, die in der Zeigervariablen enthalten ist.

Durch die Anwendung des Operators "Dekrement" auf einen Zeiger vom Typ pointer-type wird sizeof (pointer-type) aus der Adresse entfernt, die in der Zeigervariablen enthalten ist.

Es werden keine Ausnahmen generiert, wenn die Operation die Domänengrenzen des Zeigertyps überschreitet, und das Ergebnis hängt von der Implementierung ab.

Beispiel

In diesem Beispiel wird ein Array schrittweise durchlaufen, indem der Zeiger um die Größe von int erhöht wird. Mit jedem Schritt wird die Adresse und der Inhalt des Arrayelements angezeigt.

// compile with: /unsafe
class IncrDecr
{
    unsafe static void Main()
    {
        int[] numbers = {0,1,2,3,4};

        // Assign the array address to the pointer:
        fixed (int* p1 = numbers)
        {
            // Step through the array elements:
            for(int* p2=p1; p2<p1+numbers.Length; p2++)
            {
                System.Console.WriteLine("Value:{0} @ Address:{1}", *p2, (long)p2);
            }
        }
    }
}

Value:0 @ Address:12860272
Value:1 @ Address:12860276
Value:2 @ Address:12860280
Value:3 @ Address:12860284
Value:4 @ Address:12860288

Siehe auch

C#-Programmierhandbuch
Zeigerausdrücke
C#-Operatoren
Bearbeiten von Zeigern
Zeigertypen
Typen
Unsicher
fixed-Anweisung
stackalloc