Compartir a través de


Cómo: Obtener la dirección de una variable (Guía de programación de C#)

Para obtener la dirección de una expresión unaria, que se evalúa como una variable fija, use el operador de dirección.

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

El operador de dirección sólo se puede aplicar a una variable. Si la variable es una variable móvil, puede utilizar la instrucción fixed para fijar temporalmente la variable antes de obtener su dirección.

Es responsabilidad del usuario asegurarse de que se inicialice la variable. El compilador no emitirá un mensaje de error si no se inicializa la variable.

No se puede obtener la dirección de una constante o un valor.

Ejemplo

En este ejemplo, se declara un puntero a int, p, y se le asigna la dirección de una variable de entero, number. La variable number se inicializa como resultado de la asignación a *p. Comentar esta instrucción de asignación quitará la inicialización de la variable number, pero no se emitirá un error de compilación. Observe el uso del operador Acceso a miembros -> para obtener y mostrar la dirección almacenada en el puntero.

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

Vea también

Referencia

Expresiones de puntero (Guía de programación de C#)

Tipos de puntero (Guía de programación de C#)

unsafe (Referencia de C#)

fixed (Instrucción, Referencia de C#)

stackalloc (Referencia de C#)

Conceptos

Guía de programación de C#

Otros recursos

Tipos (Referencia de C#)