4.10. Operador de Dirección e Indirección
Una dirección de memoria contiene un byte de información, una variable dependiendo de su tipo puede ocupar uno o más bytes. Un apuntador solo almacena la dirección del primer byte de la variable sin importar que esta sea de más de 1 byte. Para poder ocupar los apuntadores además de la dirección de memoria que estos almacenan, se necesita poder manipular los datos a los cuales estos apuntan para lograr; esto hay dos operadores:
El * sirve para identificar la indirección del apuntador.
NOTA: Para poder diferenciar el * de la declaración de puntero basta con ver si hay un tipo de variable que este indicando la declaración de la variable.
El * nos sirve entonces para obtener el valor al cual este apuntando una apuntador Ejemplo 1: *var=5 (con esto se está diciendo que la variable previamente declarada como puntero a entero que es apuntada con var tome el valor de 5). Ejemplo2: *cad=”hola”. Por otro lado, el & devuelve la dirección de cualquier variable aunque no sea de tipo puntero.
Ejemplo:
Primero se declara una variable tipo entero de nombre a. En la segunda línea declara una variable tipo puntero a un entero de nombre ptr_a y finalmente se obtiene la dirección de la variable a con el operador de dirección, y se le asigna a la variable puntero ptr_a, para que de este modo ptr_a no apunte a un entero cualquiera si no que lo haga a la variable a.
En base al código anterior, se puede hacer lo siguiente.
Se podría pensar que al momento de ejecutar la tercer línea mostraría 23 pero no es así, debido a que en la segunda línea se le asigna 10 a la variable que está apuntando ptr_a que en este caso es a y el resultado en pantalla será 10.
|