Punteros

Páginas: 5 (1046 palabras) Publicado: 14 de diciembre de 2012
PUNTEROS
Definición:
Variable en C cuyo valor es la dirección de memoria de otra variable.
Un apuntador, es una variable que representa una dirección de un elemento de datos en
la memoria. Apunta a una dirección de memoria donde se encuentra un elemento de
cualquier tipo de dato (int, float, char, arreglo, estructura).
Los punteros están almacenados en un lugar de la memoria y tienen supropia dirección.
Un puntero apunta a una variable y lo que el contiene es la dirección de memoria de dicha
variable.
Una variable referenciada es el dato cuya posición en memoria está contenida en un
determinado puntero.
Puntero

Variable Referenciada
DATO

Operador &:
Operador Dirección o de referencia permite determinar la dirección de memoria de una
variable.
Representa la direcciónde memoria de la variable que le sigue.

Ejemplo:
Supongamos que se declara la variable i de tipo int inicializada con el valor 10, y se
encuentra en la dirección de memoria: 5016
Dirección

Contenido de i

5010

5012

5014

5016

5018

5020







10





int i = 10;
printf (“%d\n”, i); // Se imprime el contenido: 10
printf (“%u\n”, &i); // Se imprime ladirección de memoria: 5016
Nota: El especificador %u significa un entero sin digno, se ha usado ya que las direcciones
de memoria son siempre positivas.
¿Cómo almacenar una dirección de memoria en una variable?
Para que una variable almacene una dirección de memoria, se debe declarar como
variable puntero.

Declaración de punteros:
Una variable puntero se declara como todas las variables.Debe ser del mismo tipo que la
variable apuntada. Su identificador va precedido de un asterisco (*)
*
Tipo de dato: Es el tipo de dato de la variable a apuntar.
Variable Puntero: nombre de la variable puntero que se está declarando.
int *apuntador; // Variable que apunta a una variable de tipo entera.
Char *c; // Variable que apunta a una variable carácter.
Ejemplo:
int i = 10;
int *p;//Se declara la variable p, de tipo puntero a un entero
p = &i; //Se asigna la dirección de memoria de i al puntero p
printf (“%d\n”, i); // Se imprime el contenido: 10
printf (“%u\n”, &i); // Se imprime la dirección de memoria: 5016

printf (“%u\n”, p); // Se imprime la dirección de memoria: 5016
Ejemplo:
char car;
//variable que almacenará un carácter.
char *p; //declaración de puntero acarácter.
p = &car; //Se asigna la dirección de memoria de la variable car a p.

Nota:
Las constantes y las expresiones no tienen dirección, por lo que no se les puede aplicar el
operador &.

Operador *:
Es el operador de indirección o de desreferencia y provee el contenido de la dirección a la
que apunta.
Aplicado a un puntero, indica el valor de la variable apuntada.
Ejemplo:
int x= 20;
int *apun;
apun= &x;
printf(“\n%d”, *apun ); //Se imprime el contenido de la dirección apuntada por
apun, que es: 20.
Nota: No se debe confundir el operador * en la declaración del puntero, con el operador *
en las instrucciones.
Asignación de punteros:
 Valor nulo:
o char *p = 0;
o char *p = NULL;


Entre Punteros:
o char *p1, *p2;
p1=p2;

Ejercicios:
1. Declarar unpuntero a una variable de tipo float.
2. Inicializar una variable de tipo carácter, previamente declarada. Almacenar en otra
variable su dirección de memoria eimprimirla.
3. Explique lo que realizan las líneas de código que se muestran a continuación y diga
qué valores arrojan las salidas.
A)
int *pun, j = 18;
pun = &j;
printf(“%u, %u”, pun, &j) ;
printf(“\n%d, %d”, *pun, j);
B)
floatsueldo = 2500.0;
float *apun = &sueldo;
printf(“%.1f \n”,sueldo);
printf(“%u \n”,&sueldo);
printf(“%u\n”,apun);
printf(“%.1f \n”,*apun);

C)
punt= &34;
punt = &(j+5);
D)
#include
int a;
int *punt;
main()
{
a=57;
punt=&a;
printf("a = %d", a);
printf("\n&a = %u", &a);

printf("\npunt = %u", punt);
printf("\n*punt = %d", *punt);
}
E)
#include
main()
{
char carac='A', *r;...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Punteros
  • Puntero
  • Punteros
  • Punteros
  • Punteros
  • Los Punteros Laser
  • el puntero
  • punteros

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS