Ejercicios
1. Recuerda * y &. (Repaso):
Si tengo una variable y deseo obtener su dirección de memoria antepongo &
Si tengo un puntero y deseo conocer quealmacena, antepongo *
Son operadores que permiten conversión de datos , ejemplo:
o int *pta, a=5, b;
o pta = &a; //a es de tipo int, y con el & se obtiene un valor int *
o b = *pta; // pta es detipo int *, y con el * se obtiene un valor int
2. Comenta el siguiente programa
a)
int a, b;
int *pa;
a = 5;
pa = &a;
b = *pa;
3. Casting y punteros a void: Comenta el siguiente programa eidentifica errores
int *p;
double *q;
void *r;
p=q;
p=(int *)q;
p=r=q
4. Comenta el siguiente programa
main(){
int a,b,c;
int *p1,*p2;
p1 = &a;
*p1 = 1;
p2 = &b;
*p2 = 2;
p1 = p2;
*p1 =0;
p2 = &c;
*p2 = 3;
}
5. Qué emite el siguiente programa?:
#include
main()
{
int u = 3, v;
int *pu;
int *pv;
pu = &u;
v = *pu;
pv = &v;
Página 1 de 3
INSPT-UTN ~ INFORMÁTICA~PROGRAMACIÓN I ~TN ~PUNTEROS
printf(“\nu=%d &u=%X pu=%X *pu = %d”, u, &u, pu, *pu);
printf(“\nv=%d &v=%X pv=%X *pv = %d”, v, &v, pv, *pv);
}
6. Errores: realiza las declaraciones correspondientes yencuentra si hay errores en cada línea y justifica:
pta = *a;
ptb = &pta;
pta = 8;
ptb = ptb + 3;
ptb = &NULL;
b = 8;
*ptb = b;
ptb = a + 10;
printf(“%d”, pta + ptb);
int *pta,
*ptb, a, b;7. De acuerdo al ejercicio anterior haz:
Que pta apunte a a
Que ptb apunte al mismo sitio que pta
Que pta cambie de contenido a 8
Que ptb cambie de contenido aumentando 3 unidades
Que ptb apunte aNULL
Que b almacene 8
Que ptb apunte a b
Que ptb cambie de contenido a a + 10
Que imprima la suma de los contenidos de pta y ptb
8. El destino de un puntero (Repaso):
Un puntero puede tener dosposibles caminos durante su existencia
Puede “apuntar” a un espacio de memoria de otra variable. Ejemplo:
o int *a, b = 10;
o a = &b; //a no tiene memoria propia, es un “ESPEJO” de b
Puede...
Regístrate para leer el documento completo.