Zeigerkonvertierungen (C#-Programmierhandbuch)

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 To
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 To
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

C#-Programmierhandbuch
Zeigerausdrücke
Zeigertypen
Typen
Unsicher
fixed-Anweisung
stackalloc