Hack x Crack - Comunidad de Seguridad informática

Programación => C / C++ => Mensaje iniciado por: matercrack en Abril 22, 2011, 07:05:00 pm

Título: Introduccion a los apuntadores en C (I)
Publicado por: matercrack en Abril 22, 2011, 07:05:00 pm
Este es mi primer post que realizo espero que sea ameno y que la mayoria de las personas curiosas le entiendan.

Los apuntadores son las capacidades mas dificiles de manejar en C.Los apuntadores permiten a los programas simular llamadas por referencia,crear y manipular estructuras de datos,es decir,estructuras de datos que pueden crecer o encogerse,como son listas enlazadas,colas de espera,pilas y árboles.

Declaraciones e inicialización de variables de apuntadores

Los apuntadores son variables que contienen direcciones de memoria como sus valores.Por lo regular una variable contiene directamente un valor especifico.Un apuntador,por otra parte,contiene la dirección de una variable que contiene un valor especifico.En este sentido,un nombre de variable se refiere directamente a un valor y un apuntador se refiere indirectamente a un valor.El referirse a un valor a traves de un apuntador se conoce como indireccion.
Los apuntadores,como cualquier otra variable,deben ser declarados antes de que puedan ser utilizados.La declaracion
Código: [Seleccionar]
int *contPtr,cont;declara la variable contPtr siendo del tipo int*(es decir, un apuntador a un valor entero) y se lee,"contPtr es un apuntador a int",o bien "contPtr apunta a un objeto del tipo entero".Tambien, la variable cont se declara como un entero,no un apuntador a un entero.El * solo se aplica a contPtr en la declaracion.Cuando el * se utilza de esta forma en una declaracion, indica que la variable que se esta declarando es un apuntador.Los apuntadores pueden ser declarados para apuntar a objetos de cualquier tipo de datos.Un apuntador puede ser inicializado a 0,NULL,o a una direccion.Un apuntador con el valor NULL apunta a nada.

Operadores de apuntador

El &, u operador de dirección,es un operador unario que regresa la dirección de su operando.Po ejemplo,suponiendo las declaraciones
Código: [Seleccionar]
int y=5;
int *yPtr;
el enunciado
Código: [Seleccionar]
yPtr = &yasigna la dirección de la variable y a la variable de apuntador yPtr.La yPtr se dice entonces que "apunta a" y.
El operador *,conocido comunmente como el operador de indirección o de desreferencia,regresa el valor del objeto hacia el cual su operando apunta(es decir,un apuntador).Por ejemplo el enunciado
Código: [Seleccionar]
printf("%d", *yPtr);imprime el valor de la variable y,es decir 5.Utilizar a * de esta forma se conoce como desreferenciar a un apuntador.Los operadores & y * son complementarios el uno del otro cuando se aplican ambos de manera consecutiva a yPtr,en cualquier orden , el mismo resultado sera impreso.

Bueno este es el fin de mi primer post espero que fuese claro si no es asi pueden mandarme algun mensaje para tratar de aclarar dudas ademas, espero publicar la segunda parte un poco mas extensa para asi extender nuestro conocimiento.
Título: Re:Introduccion a los apuntadores en C (I)
Publicado por: 3rr0rf474l en Abril 23, 2011, 12:58:23 am
Muchas gracias, seguro te lo agradeceran, al principio me costo mucho empezar con punteros  :D
Espero la siguiente parte  ;)