Zeigerkonvertierungen (C#-Programmierhandbuch)

Aktualisiert: November 2007

Die folgende Tabelle zeigt die vordefinierten impliziten Zeigerkonvertierungen. Implizite Konvertierungen können in zahlreichen Situationen auftreten, z. B. in Methodenaufrufen und Zuweisungsanweisungen.

Implizite Zeigerkonvertierungen

Von

In

Beliebiger Zeigertyp

void*

NULL

Beliebiger Zeigertyp

Die explizite Zeigerkonvertierung mithilfe von Typumwandlungsausdrücken wird für Konvertierungen verwendet, für die keine implizite Konvertierung vorhanden ist. Diese Konvertierungen sind in der folgenden Tabelle zusammengefasst.

Explizite Zeigerkonvertierungen

Von

In

Beliebiger Zeigertyp

Alle anderen Zeigertypen

sbyte, byte, short, ushort, int, uint, long oder ulong

Beliebiger Zeigertyp

Beliebiger Zeigertyp

sbyte, byte, short, ushort, int, uint, long oder ulong

Beispiel

Im folgenden Beispiel wird ein Zeiger auf int in einen Zeiger auf byte konvertiert. Beachten Sie, dass der Zeiger auf das niedrigste adressierte Byte der Variablen zeigt. Wenn Sie das Ergebnis schrittweise auf die Größe von int (4 Bytes) erhöhen, können Sie die verbleibenden Bytes der Variablen anzeigen.

// compile with: /unsafe
class ClassConvert
{
    static void Main() 
    {
        int number = 1024;

        unsafe 
        {
            // Convert to byte:
            byte* p = (byte*)&number;

            System.Console.Write("The 4 bytes of the integer:");

            // Display the 4 bytes of the int variable:
            for (int i = 0 ; i < sizeof(int) ; ++i)
            {
                System.Console.Write(" {0:X2}", *p);
                // Increment the pointer:
                p++;
            }
            System.Console.WriteLine();
            System.Console.WriteLine("The value of the integer: {0}", number);

            // Keep the console window open in debug mode.
            System.Console.WriteLine("Press any key to exit.");
            System.Console.ReadKey();
        }
    }
}
    /* Output:
        The 4 bytes of the integer: 00 04 00 00
        The value of the integer: 1024
    */

Siehe auch

Konzepte

C#-Programmierhandbuch

Referenz

Zeigerausdrücke (C#-Programmierhandbuch)

Zeigertypen (C#-Programmierhandbuch)

unsafe (C#-Referenz)

fixed-Anweisung (C#-Referenz)

stackalloc (C#-Referenz)

Weitere Ressourcen

Typen (C#-Referenz)