¿Qué es un operador de referencia?

En la programación de computadoras, un operador de desreferencia, también conocido como operador de indirección, opera con una variable de puntero y devuelve el valor de ubicación, o valor l, al que apunta en la memoria. En el lenguaje de programación C, el operador de deferencia se denota con un asterisco ( * ).

Por ejemplo, en C, podemos declarar una variable x que contiene un valor entero y una variable p que contiene un puntero a un valor entero en la memoria:

 int x; int * p; 

Aquí, el asterisco le dice al compilador, " p no es un número entero, sino más bien un puntero a una ubicación en la memoria que contiene un número entero". Aquí, no es una desreferencia, sino parte de una declaración de puntero.

Ahora podemos establecer p en la ubicación asignada para el valor de x usando el operador &, que significa "dirección de".

 p = & x; 

Esta acción le dice al compilador: "La dirección en la memoria a la que apunta p es la dirección que asignó para el entero x ".

Para ilustrar, si establecemos el valor de x en 1 utilizando el método convencional e imprimimos el valor, la salida será 1 .

 x = 1; printf ("% d", x); 

Sin embargo, también podemos cambiar el valor de x haciendo referencia a p . Hacemos esto con un asterisco:

 * p = 2; printf ("% d", x); 

Y la salida cambia a 2 .

En otras palabras, después de que p haya sido declarado como un puntero del mismo tipo que x y luego configurado para que apunte al valor de x, podemos usar x y * p indistintamente. Ya que ambos se refieren a lo mismo, cambiar el valor de uno cambiará el valor del otro.

Puntero, términos de programación, variable