Gewusst wie: Abrufen der Adresse einer Variablen (C#-Programmierhandbuch)

Um die Adresse eines unären Ausdrucks abzurufen, der eine feste Variable ergibt, verwenden Sie den address-of-Operator:

int number;  
int* p = &number; //address-of operator &  

Der address-of-Operator kann nur auf eine Variable angewendet werden. Wenn die Variable beweglich ist, können Sie eine feste Anweisung verwenden, um die Variable vorübergehen zu befestigen, um ihre Adresse abzurufen.

Sie müssen sicherstellen, dass die Variable initialisiert wird. Der Compiler gibt keine Fehlermeldung aus, wenn die Variable nicht initialisiert ist.

Sie können nicht die Adresse einer Konstanten oder eines Werts abrufen.

Beispiel

In diesem Beispiel wird ein Zeiger auf int, p, deklariert. Die Adresse einer ganzzahligen Variable, number, wird ihm zugewiesen. Die Variable number wird als Ergebnis der Zuweisung zu *p initialisiert. Wenn Sie diese Zuweisungsanweisung zu einem Kommentar machen, wird die Initialisierung der Variablen number entfernt, aber kein Kompilierzeitfehler ausgestellt. Beachten Sie den Gebrauch des Memberzugriffsoperators -> zum Abrufen und Anzeigen der Adresse, die im Zeiger gespeichert ist.

// compile with: /unsafe
class AddressOfOperator
{
    static void Main()
    {
        int number;

        unsafe 
        {
            // Assign the address of number to a pointer:
            int* p = &number;

            // Commenting the following statement will remove the
            // initialization of number.
            *p = 0xffff;

            // Print the value of *p:
            System.Console.WriteLine("Value at the location pointed to by p: {0:X}", *p);

            // Print the address stored in p:
            System.Console.WriteLine("The address stored in p: {0}", (int)p);
        }

        // Print the value of the variable number:
        System.Console.WriteLine("Value of the variable number: {0:X}", number);

        System.Console.ReadKey();
    }
}
/* Output:
        Value at the location pointed to by p: FFFF
        The address stored in p: 2420904
        Value of the variable number: FFFF
*/

Siehe auch

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