Estudiante

Páginas: 7 (1642 palabras) Publicado: 24 de abril de 2014
APUNTADORES
Un apuntador, o puntero, es un identificador de programa, ya sea:

una variable
una constante o
una función,
cuyo contenido intrínseco es una dirección. Así por ejemplo:
int
int*

Peso = 1250;
Fuerza = 1250;

poseen distinto sentido: la variable Peso puede ser un operando común en una expresión de cálculo, en tanto que Fuerza indica una dirección (1250) dondepresumiblemente se halla el dato que podría ser utilizado en una expresión cálculo. Puesto de
otra manera estos mismos datos, podríamos entender mejor estos conceptos:

int
int*

Peso = 1250;
pPeso = 14500;

(que “sabemos” se halla en la dirección 14500)
(le asignamos esa dirección)

Esquemáticamente tendríamos lo siguiente:

14500
1250
pPeso

Peso

14500
Cuando se trabaja con punterossurgen dos conceptos:

 Dirección
 Indirección
La dirección es el contenido en sí del identificador, en este caso el valor 14500.
La indirección es aquello que se halla referenciado o almacenado en dicha dirección, en este caso la magnitud 1250.

Asignación de direcciones a un apuntador.
Asignación directa:
Apuntador = Valor.
Esto suele ocurrir normalmente cuando se conoce de antemano ladirección de memoria: por ejemplo la memoria de video o ciertas posiciones bajas normalmente utilizadas
por el sistema operativo para el reloj, el buffer de teclado, etc. Se debe tener mucho
cuidado para no ingresar datos en direcciones equivocadas que produzcan funcionamiento anormal del programa o del sistema.

Taller de Lenguajes I – Clase Teórica Nº 1

Nº1 Pág 1/13

Asignatura:TALLER DE LENGUAJES I – 2014
Carrera:
PROGR. UNIVERSITARIO / LIC EN INFORMATICA
Dictado:
Ing. Juan Manuel Conti.
Asignación a través de operadores o funciones.
Apuntador = &Identificador

(operador de dirección amphersand)

Para el ejemplo anterior tendríamos: pPeso = &Peso, donde el operador “&” retorna
la dirección de su operando: en este caso la dirección de la variable Peso.
Es dedestacar que este operador devuelve una dirección del mismo tipo del operando
sobre el cual actúa: en este caso retorna un puntero a int.

Las Indirecciones.
La palabra indirección (o indirection en ingés) podríamos pensarla más bien como:

in-dirección (lo que se halla “en” la dirección)
Podemos asignar o referenciar los que se halla en la dirección apuntada por el identificador.
Asignación:*pPeso = 2500

Está diciendo: en la dirección apuntada por el puntero pPeso, almacene la magnitud
2500.
IMPORTANTE: Note bien la diferencia entre pPeso=…. y *pPeso=… En el primer
caso se asigna una DIRECCION a la variable en sí, y en el segundo caso se asigna
UN VALOR en la dirección apuntada por la variable.
El dato almacenado en la dirección pPeso (o del puntero que se tratase) goza detodas las propiedades para ese tipo de dato, en este caso un int (entero):






Cociente de una División Entera.
Resto de una División Entera.
Puede utilizarse como operando en expresiones aritméticas.
Etc.

Ejemplos:

(*pPeso)*1000
Peso equivalente en gramos.
if((*pPeso) >=100) { ………….. }
En realidad el paréntesis no es necesario pero da mayor claridad a las operaciones.Taller de Lenguajes I – Clase Teórica Nº 1

Nº1 Pág 2/13

Asignatura: TALLER DE LENGUAJES I – 2014
Carrera:
PROGR. UNIVERSITARIO / LIC EN INFORMATICA
Dictado:
Ing. Juan Manuel Conti.
Un ejemplo para aclarar dudas:
Considerar el siguiente esquema:
p1ENT

p2ENT

int *

&ENT

128

ENT

int *

cuyo código vienen dado a continuación:
#include
void main()
{
int *p1ENT;
int*p2ENT;
int
ENT = 128;
clrscr(); highvideo();
p1ENT =&ENT;
p2ENT =p1ENT;
if(p1ENT==p2ENT) {
cprintf("DIRECCIONES APUNTADAS IGUALES\r\n");
getch();
}
if(*p1ENT==*p2ENT) {
cprintf("CONTENIDOS REFERENCIADOS IGUALES\r\n");
getch();
}
}
La dirección asignada al apuntador p1ENT se obtuvo mediante el operador “&”, en tanto que la dirección de p2ENT fue tomada directamente del puntero...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Estudiante
  • Estudiante
  • Estudiante
  • Estudiante
  • El estudiante
  • Estudiante
  • Estudiante
  • Estudiante

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS