Zeigerkonvertierungen (C#-Programmierhandbuch)Pointer Conversions (C# Programming Guide)

Die folgende Tabelle zeigt vordefinierte implizite Zeigerkonvertierungen.The following table shows the predefined implicit pointer conversions. Implizite Konvertierungen können in vielen Situationen auftreten, einschließlich methodenaufrufender und Zuweisungsansweisungen.Implicit conversions might occur in many situations, including method invoking and assignment statements.

Implizite ZeigerkonvertierungenImplicit pointer conversions

VonFrom BeschreibungTo
Beliebiger ZeigertypAny pointer type voidvoid
NULLnull Beliebiger ZeigertypAny pointer type

Die explizite Zeigerkonvertierung wird verwendet, um Konvertierungen, für die keine implizite Konvertierung vorliegt, mithilfe eines CAST-Ausdrucks durchzuführen.Explicit pointer conversion is used to perform conversions, for which there is no implicit conversion, by using a cast expression. Die folgende Tabelle zeigt diese Konvertierungen.The following table shows these conversions.

Explizite ZeigerkonvertierungenExplicit pointer conversions

VonFrom BeschreibungTo
Beliebiger ZeigertypAny pointer type Ein beliebiger anderer ZeigertypAny other pointer type
sbyte, byte, short, ushort, int, uint, long oder ulongsbyte, byte, short, ushort, int, uint, long, or ulong Beliebiger ZeigertypAny pointer type
Beliebiger ZeigertypAny pointer type sbyte, byte, short, ushort, int, uint, long oder ulongsbyte, byte, short, ushort, int, uint, long, or ulong

BeispielExample

Im folgenden Beispiel wird ein Zeiger auf int in einen Zeiger auf byte konvertiert.In the following example, a pointer to int is converted to a pointer to byte. Beachten Sie, dass der Zeiger auf das Byte der Variable mit der niedrigsten Adresse zeigt.Notice that the pointer points to the lowest addressed byte of the variable. 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.When you successively increment the result, up to the size of int (4 bytes), you can display the remaining bytes of the variable.

// 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 auchSee Also

C#-ProgrammierhandbuchC# Programming Guide
ZeigerausdrückePointer Expressions
ZeigertypenPointer types
TypenTypes
unsafeunsafe
fixed-Anweisungfixed Statement
stackallocstackalloc