La declaración para un puntero está comprendida por 3 partes:
El tipo de variable a la cual se desea apuntar.
El * (asterisco) que identifica que una variable es de tipo puntero. Su identificador.
Ejemplo:
int * var (Declaración de una variable apuntador a un entero la
cual es llamada var)
Otros ejemplos:
char * ptr (variable puntero a una variable char).
float * puntero (variable puntero a float). long * ptr2 (variable puntero a long).
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:
* indirección () & dirección o referencia ()
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.
int * var Es una declaración de variable tipo puntero a un entero
mientras que *prt implica que estamos obteniendo la indirección del puntero 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 acon 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 siguie
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.