Zeigerkonvertierungen (C#-Programmierhandbuch)

Die folgende Tabelle zeigt vordefinierte implizite Zeigerkonvertierungen. Implizite Konvertierungen können in vielen Situationen auftreten, einschließlich methodenaufrufender und Zuweisungsansweisungen.

Implizite Zeigerkonvertierungen

Von Beschreibung
Beliebiger Zeigertyp void*
NULL Beliebiger Zeigertyp

Die explizite Zeigerkonvertierung wird verwendet, um Konvertierungen, für die keine implizite Konvertierung vorliegt, mithilfe eines CAST-Ausdrucks durchzuführen. Die folgende Tabelle zeigt diese Konvertierungen.

Explizite Zeigerkonvertierungen

Von Beschreibung
Beliebiger Zeigertyp Ein beliebiger anderer Zeigertyp
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 Byte der Variable mit der niedrigsten Adresse zeigt. Wenn Sie das Ergebnis nach und nach bis auf die Größe von int (4 Bytes) erhöhen, können Sie die verbleibenden Bytes der Variable 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
unsafe
fixed-Anweisung
stackalloc