Documentos de Académico
Documentos de Profesional
Documentos de Cultura
VARIABLE PUNTERO
Almacena una direccin (posicin interna en memoria RAM) de memoria de otra variable, es decir:
Direccin de memoria EF00 EF02 FEE0 EF00 Variable puntero (direccin) Variable de memoria 20 Variable (valor)
La direccin nula es el macro NULL, se encuentra definida en el archivo de cabecera stdio.h, corresponde al valor 0000.
OPERADORES DE PUNTEROS
Direccin (&) y Indireccin (*) Operador Direccin (&) Este operador devuelve la direccin de memoria de su operando que debe ser una variable. Ej.: int *m, cuenta=20; m= &cuenta; //asignacin m recibe la direccin de la variable cuenta //Si cuenta est en EF00 (que guarda 20), m tendr .
OPERADORES DE PUNTEROS
Direccin de memoria
Memoria
Variable
EF00 EF02
20 .
cuenta
FEE0
EF00
OPERADORES DE PUNTEROS
Operador Indireccin (*) devuelve el valor de la variable localizada en la direccin del operando que debe un puntero. Ej.: int *m, q, cuenta=20; //asignacin m= &cuenta; q= *m; q recibe el valor (contenido) de la variable m . q=cuenta; //Si cuenta est en EF00 (que guarda 20), q EF02 , entonces q tendr
OPERADORES DE PUNTEROS
Direccin de memoria
Memoria
Variable
20 20 . EF00
cuenta q m
OPERADORES DE PUNTEROS
Mediante un puntero entero asignar el valor de la variable de tipo flotante x a la variable de tipo flotante y.
INICIALIZACIN DE PUNTEROS
Se debe inicializar el puntero a un valor conocido antes de usarlo. Por defecto (NULL), indica que no apunta a ninguna direccin de memoria especfica. Esto se utiliza normalmente en asignacin dinmica de memoria. Ej.: inicializacin de una cadena: char *p = Hola que tal; // almacena cadena puts(p); putchar(*p);
Dos tipos de indireccin: Indireccin Simple: El valor de un puntero es la direccin de la variable que contiene el valor deseado.
Puntero DIRECCIN Variable
Indireccin Mltiple: En puntero a puntero, el primer puntero contiene la direccin del segundo puntero, que apunta a su vez a la variable que contiene el valor deseado.
Puntero DIRECCIN Puntero DIRECCIN Variable
Declaracin de una variable puntero a puntero. Se aade ** al nombre de la variable. Ej.: float ** ptr; Donde ptr, es un puntero a puntero de tipo float. Para acceder al valor deseado indirectamente apuntado por un puntero a puntero, hay que poner dos veces el operador *.
Imprimir el valor de la variable x, utilizando indireccin mltiple. int x=100; int *p, **q; p=&x; q=&p; printf ("\n x= %d \n",**q);
x p q
Valor de la variable
Direccin de Puntero
EF00 *q p **q *p x