Free Web Hosting Provider - Web Hosting - E-commerce - High Speed Internet - Free Web Page
Search the Web

Universidad del Valle de México

MUSICA MIENTRAS NAVEGAS CON REAL AUDIO

SACBEOB ( SISTEMAS DE CAMINOS ELEVADOS )

1762PERSONAS QUE NOS VISITAN

Búscalo en SACBEOB

PUNTEROS

Los punteros en el Lenguaje C , son variables  que poseen la dirección de las ubicaciones en memoria de otras variables, y por medio de ellos se tendra un poderoso método de acceso a todas ellas .
Quizás esta parte sea la mas conflictiva del lenguaje , ya que muchos programadores    en C , lo ven como un método extraño ó al menos desacostrumbrado. Sin embargo , y en la medida que uno se va familiarizando con ellos , se convierten en la herramienta más cómoda y directa para el manejo de variables complejas , argumentos , parámetros , etc , y se empieza a preguntar como es que hizo para programar hasta aquí , sin ellos .
Veamos primero , como se declara un puntero :

tipo de variable apuntada *nombre_del_puntero ;

int *pint ;

double *pfloat ;

char *letra , *codigo , *caracter ;

En estas declaraciones sólo decimos al compilador que reserve una posición de memoria para albergar la dirección de una variable , del tipo indicado , la cual será referenciada con el nombre que hayamos dado al puntero .
Obviamente , un puntero debe ser inicializado antes de usarse , y una de las eventuales formas de hacerlo es la siguiente:

int var ; /* declaro ( y se crea en memoria ) una variable entera ) */

int *pint ; /* " " " " " un puntero que contendrá

la dirección de una variable entera */

pint = &var ; /* escribo en la dirección de memoria donde está el

puntero la dirección de la variable entera */

Lo que hemos hecho se puede simbolizar de la siguiente manera :
donde dentro del recuadro está el contenido de cada variable .

Pint xxxxxx valor contenido por var

Dirección de var

yyyyyy (posición de memoria xxxxxx (posición de memoria

ocupada por el puntero ) ocupada por la variable)

El símbolo & , ó dirección , puede aplicarse a variables , funciones , etc , pero nó a constantes ó expresiones , ya que éstas no tienen una posición de memoria asignada.
La operación inversa a la asignación de un puntero , de referenciación del mismo , se puede utilizar para hallar el valor contenido por la variable apuntada . Así por ejemplo serán expresiones equivalentes :

y = var ;

y = *pint ;

printf("%d" , var ) ;

printf("%d" , *pint) ;

En estos casos , la expresión " *nombre_del_puntero " , implica " contenido de la variable apuntada por el mismo " . Veamos un corto ejemplo de ello :

#include "STDIO.H"

main()

{

char var ; /*una variable del tipo caracter */

char *pchar; /* un puntero a una variable del tipo caracter */

pc = &var ; /*asignamos al puntero la direccion de la variable */

for (var = 'a'; var1 <<= 'z'; var1++)

printf("%c", *pchar) ; /* imprimimos el valor de la variable apuntada */

return 0 ;

}

REGRESAR

CONTINUAR