Está en la página 1de 5

DANIEL ANDRES CAPERA BAUTISTA 81816 18/05/2020

¿Qué es un apuntador?

Es cuando se declara una variable, el compilador reserva un espacio de memoria para ella y
asocia el nombre de esta a la dirección de memoria desde donde comienzan los datos de esa
variable. Las direcciones de memoria se suelen describir como números en hexadecimal. Un
apuntador es una variable cuyo valor es la dirección de memoria de otra variable. Se dice que un
apuntador “apunta” a la variable cuyo valor se almacena a partir de la dirección de memoria que
contiene el apuntador. Por ejemplo, si un apuntador p almacena la dirección de una variable x, se
dice que “p apunta a x”.

¿Cuáles son los operadores de indireccion?

En C/C++ para poder entender lo anterior, en C/C++ se han desarrollado operadores que permiten
accesar a cada uno de los atributos de un apuntador.

Estos operadores son llamados operadores de indireccion (* y &).

Hay un claro ejemplo de que se pueden accesar a los tributos normales de una variable “normal”,
con una variable se tiene en cuenta, digamos la variable “x” y se toma en cuenta lo siguiente:

Referencia Atributo
x Nos da el contenido de X
&x Nos da la dirección donde “vive” x

Y digamos para el caso del puntero p se tendrá:

Referencia Atributo
P Nos da el contenido de p (Una dirección)
&p Nos da la dirección donde “vive” p
*p Nos da su valor indireccto

A esto se llega a una conclusión de que la variable “x” o expresión este genera un error, pero a
cambio con la variable p ya que es un valor indirecto solo es exclusivo de variables de puntero.

¿que son los niveles de indireccion?

Es comprender que existen ciertos niveles de indireccion para poder asignar un valor a una
variable puntero.

En cada nivel se asemejan a una escalera en donde el piso es el nivel 0. Cada operación realizada
mediante el operador de indireccion sube o baja un nivel de indireccion. Por ejemplo, para el caso
de la variable x.

¿Cuáles serían sus niveles de indireccion?

:
Nivel 5
Nivel 3
Nivel 2 &x
Nivel 1 x/
Nivel 0
DANIEL ANDRES CAPERA BAUTISTA 81816 18/05/2020

En esta figura podemos percatar en qué nivel se encuentra cada una de los atributos de nuestra
variable normal. Cómo se puede observar el nivel cero lo ocupa la variable x. Y &x ocupa el nivel 1.

Para el caso de una variable puntero tenemos el siguiente nivel de indireccion:

:
Nivel 4
Nivel 3 &p
Nivel 2 P
Nivel 1 *p/
Nivel 0

En el caso de una variable puntero podemos constatar que por definición una variable puntera ya
tiene un nivel de indireccion predeterminado. La variable p por sí misma ya nace un nivel arriba de
x.

*p vive un escalón abajo y &p un escalón arriba.

Una de las demostraciones anteriores podemos establecer algunas observaciones interesantes


que nos ayudarán y se tendrán en cuenta a comprender mejor los apuntadores.

1. Un apuntador por definición “nace” en un nivel de indireccion arriba por el de cualquier otro tipo
de expresión.

2. Solo es posible asignar a un puntero una expresión

si dicha expresión tiene el mismo nivel de indireccion.

3. Para subir en la escalera de indireccion se aplica el

operador &.

4. Para bajar en la escalera de indireccion se aplica el

operador *.

5. No es posible bajar más del nivel cero, es decir, no

es posible tener un nivel de indireccion de –1.

6. La escalera no sube al infinito. Normalmente los

compiladores como BCC y MSC pueden alcanzar

un nivel de indireccion hasta de 12 niveles.

Algunos otros compiladores de trabajo pesado

alcanzan más, pero lo más común son hasta 12

niveles.

De lo anterior deberíamos de comprender mejor porqué


DANIEL ANDRES CAPERA BAUTISTA 81816 18/05/2020

expresiones como p= &x; es válida!. Además, tendríamos

que comprender que expresiones como **p; generarían

errores de compilación.

Pag 5 PDF
DANIEL ANDRES CAPERA BAUTISTA 81816 18/05/2020

Ejercicios

Ç
DANIEL ANDRES CAPERA BAUTISTA 81816 18/05/2020

También podría gustarte