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