Variables
Es una variable sonde se puede asignar una dirección de memoria.
Definición de un apuntador
El operador de indirección o dereferencia * devuelve el contenido de un objeto apuntado porun apuntador'.
El operador unario o monádico & devuelve la dirección de memoria de una variable.
La sintaxis para declarar un apuntador es:
Ejemplo:
int *px,*py;
char *pc;
Considere elsiguiente ejemplo:
Void main()
{
int x = 1, y = 2;
int *ap;
ap = &x;
y = *ap;
x = ap;
*ap = 3;
}
Supongamos quela variable x está en la localidad de la memoria 100, y en 200 y ap en 1000. Nota: un apuntador es una variable, por lo tanto, sus valores necesitan ser guardados en algún lado.
|100 |200|1000 |
|x |1 |y |2 |ap |100 |
int x = 1, y = 2;
int *ap;
ap = &x;
Después y obtiene el contenido de ap. En el ejemplo ap apunta a la localidad de memoria100 -- la localidad de x. Por lo tanto, y obtiene el valor de x -- el cual es 1.
x = ap;
|100 |200 |1000 |
|x |100 |y |1 |ap |100 |
Comose ha visto C no es muy estricto en la asignación de valores de diferente tipo (apuntador a entero). Así que es perfectamente legal (aunque el compilador genera un aviso de cuidado) asigna el valoractual de ap a la variable x. El valor de ap en ese momento es 100.
*ap = 3;
|100 |200 |1000 |
|x |3 |y |1 |ap |100 |
Finalmente se asignaun valor al contenido de un apuntador (*ap).
Importante: Cuando un apuntador es declarado apunta a algún lado. Se debe inicializar el apuntador antes de usarlo. Por lo que:
main(){
int *ap;
*ap = 100;
}
Puede generar un error en tiempo de ejecución o presentar un comportamiento errático.
El uso correcto será:
main()...
Regístrate para leer el documento completo.