Un apuntador es una variable que almacena la dirección o posición en memoria de otra variable apuntando o señalando la posición del primer byte. permite:
Una vez que se declara un apuntador, su valor
(dirección de una variable) se asigna con el operador ordinario
&(operador dirección) aplicado a la variable a la que se apunta,
según los siguientes esquemas de parámetros en la memoria
y declaraciones:
|
|
|
|
|
|
|
|
|
|
char y[3]="12"; /* se declara tipo, nombre y se asigna contenido */
Observe que en el caso de un arreglo alfanumérico el nombre de la variable sin índices es por definición un apuntador y no requiere el operador (*). Cuando un arreglo alfanumérico se menciona sin índice, se menciona un apuntador que hace referencia a la dirección del primer byte (y=12922). Recuerde que al final del arreglo debe agregarse un elento más para el caracter nulo que indica fin del arreglo ('\0').
Para una variable entera:
|
|
|
|
|
|
|
|
|
|
int a=25; /* se declara y da valor para una variable entera */
int *aa; /* se declara tipo y nombre de un apuntador */
... aa&a; /* se asigna la dirección: aa=1235; al apuntador */
En este caso la dirección de la variable a la que apunta se obtiene por medio del operador dirección (&). En este caso se hace referencia por medio del primer byte. Por consiguiente se tiene que el valor de la variable se puede accesar con *aa o can la variable a.
Para una variable real:
|
|
|
|
|
|
|
|
|
|
||
|
|
||
|
|
float b=47.35; /* se declara y da valor para una variable real */
float *ab; /* se declara el tipo y nombre de un apuntador real */
... ab=&ab; /* se asigna la dirección: ab=3527; al apuntador */
En este caso la dirección de la variable a la que apunta se obtiene por medio del operador indirección (&). Nuevamente observe que siempre se hace referencia por medio del primer byte. El valor de la variable se puede accesar con *ab o con la variable b.
NOTA: las direcciones de las variables son siempre números positivos y por lo tanto su valor en todos los casos será un entero sin signo.
