Punteros

Solo disponible en BuenasTareas
  • Páginas : 4 (876 palabras )
  • Descarga(s) : 0
  • Publicado : 20 de noviembre de 2010
Leer documento completo
Vista previa del texto
Punteros
Definición
Un puntero es un dato que contiene una dirección de memoria.

NOTA:

Existe una dirección especial que se representa por medio de la constante NULL (definida en ) y seemplea cuando queremos indicar que un puntero no apunta a ninguna dirección.

Declaración
*

Tipo de dato del objeto referenciado por el puntero

Identificador de la variable de tipo puntero.Cuando se declara un puntero se reserva memoria para albergar una dirección de memoria, pero NO PARA ALMACENAR EL DATO AL QUE APUNTA EL PUNTERO. El espacio de memoria reservado para almacenar un punteroes el mismo independientemente del tipo de dato al que apunte: el espacio que ocupa una dirección de memoria.

char c = ’a’; char *ptrc; int *ptri;

Operaciones básicas con punteros

DirecciónOperador & & devuelve la dirección de memoria donde comienza la variable . El operador & se utiliza para asignar valores a datos de tipo puntero:

int i; int *ptr; ... ptr = &i;

IndirecciónOperador * * devuelve el contenido del objeto referenciado por el puntero . El operador * se usa para acceder a los objetos a los que apunta un puntero:

char c; char *ptr; … ptr = &c; *ptr = ‘A’;

//Equivale a escribir: c = ‘A’

Asignación Operador =

A un puntero se le puede asignar una dirección de memoria concreta, la dirección de una variable o el contenido de otro puntero.

Unadirección de memoria concreta: int *ptr; ... ptr = 0x1F3CE00A; ... ptr = NULL;

La dirección de una variable del tipo al que apunta el puntero: char c; char *ptr; ... ptr = &c;

Otro puntero del mismotipo: char char char … ptr1 ptr2 c; *ptr1; *ptr2; = &c; = ptr1;

Como todas las variables, los punteros también contienen “basura” cuando se declaran, por lo que es una buena costumbreinicializarlos con NULL.

Ejemplo
int main () { int y = 5; int z = 3; int *nptr; int *mptr;

nptr = &y;

z = *nptr;

*nptr = 7;

mptr = nptr;

mptr = *z;

*mptr = *nptr;

y = (*nptr) + 1;...
tracking img