ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Punteros


Enviado por   •  26 de Abril de 2015  •  Informe  •  490 Palabras (2 Páginas)  •  146 Visitas

Página 1 de 2

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 <stdlib.h>) y se emplea cuando

queremos indicar que un puntero no apunta a ninguna dirección.

Declaración

<tipo> *<identificador>

<tipo>

Tipo de dato del objeto referenciado por el puntero

<identificador>

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 puntero es 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ón

Operador &

&<id> devuelve la dirección de memoria donde comienza la variable <id>.

El operador & se utiliza para asignar valores a datos de tipo puntero:

int i;

int *ptr;

...

ptr = &i;

Indirección

Operador *

*<ptr> devuelve el contenido del objeto referenciado por el puntero <ptr>.

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.

Una direcció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 mismo tipo:

char c;

char *ptr1;

char *ptr2;

ptr1 = &c;

ptr2 = ptr1;

Como todas las variables, los punteros también contienen “basura” cuando se

declaran, por lo que es una buena costumbre inicializarlos 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;

return 0;

}

Errores comunes

Asignar punteros de distinto tipo

int a = 10;

int *ptri = NULL;

double x = 5.0;

double *ptrf = NULL;

...

...

Descargar como (para miembros actualizados) txt (3 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com