Condividi tramite


Procedura: ottenere l'indirizzo di una variabile (Guida per programmatori C#)

Per ottenere l'indirizzo di un'espressione unaria, che restituisce una variabile fissa, utilizzare l'operatore address-of:

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

L'operatore address-of può essere applicato solo a una variabile.Se la variabile è spostabile, è possibile utilizzare l' istruzione fissa per correggere temporaneamente la variabile prima di ottenerne l'indirizzo.

È compito del programmatore garantire che la variabile venga inizializzata.Il compilatore non genererà un messaggio di errore se la variabile non è inizializzata.

Non è possibile ottenere l'indirizzo di una costante o di un valore.

Esempio

In questo esempio viene dichiarato un puntatore a int, p, a cui viene assegnato l'indirizzo di una variabile integer number.La variabile number viene inizializzata in seguito all'assegnazione a *p.Se si trasforma l'istruzione di assegnazione in un commento, verrà rimossa l'inizializzazione della variabile number, ma non verrà generato alcun errore in fase di compilazione.Si noti l'utilizzo dell'operatore di accesso ai membri-> per ottenere e visualizzare l'indirizzo archiviato nel puntatore.

// 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
*/

Vedere anche

Riferimenti

Espressioni puntatore (Guida per programmatori C#)

Tipi di puntatori (Guida per programmatori C#)

unsafe (Riferimenti per C#)

Istruzione fixed (Riferimenti per C#)

stackalloc (Riferimenti per C#)

Concetti

Guida per programmatori C#

Altre risorse

Tipi (Riferimenti per C#)