Está en la página 1de 10

Apuntadores T32

Fundamentos de Programación
Juan Jesús Gutiérrez García
(2020)
1. Dado el siguiente código responde

#include <stdio.h>
a) ¿Cuál es la salida? 5 5
int main(){
b) ¿Cuál es el tipo de x? Entero (int)
int x;
c) ¿Cuál es el tipo de api? Apuntador a entero int* api;

d) ¿Cuál es el tipo de &x? Apuntador a entero x = 5;


api = &x;
e) ¿Cuál es el valor de api después de
la asignación? La dirección de x printf("%d ",*api);
f) ¿Cuál es el tipo de *api? printf("%d\n",api[0]);
Entero (int)
g) ¿Cuál es el tipo de api[0]? return 0;
Entero (int) }
2. Dado el siguiente código responde

a) ¿Cuál es la salida? 0028FEEC #include <stdio.h>


0028FEEC
b) ¿Cuál es el valor de x? 5 0028FEE8 int main(){
int x;
c) ¿Cuál es el tipo de &api? Doble Apuntador a entero
int* api;
d) ¿Cuál es el valor de &api? 0028FEE8
x = 5;
e) ¿Por qué para imprimir se usa %p? api = &x;
En todos los caso se refiere a direcciones lo que se desea
printf("%p\n",&x);
mostrar en pantalla
printf("%p\n",api);
printf("%p\n",&api);
f) ¿Qué valor tiene &api[0]? 0028FEEC
return 0;
g) ¿Qué pasa con *api[0]? Marca error de sintaxis }
3. Dado el siguiente código responde

a) ¿Cuál es la salida? 0028FEEC #include <stdio.h>


0028FEEC
b) ¿Cuál es el valor de apapi? 0028FEE 0028FEE8 int main(){
8 0028FEE4 int x;
c) ¿Cuál es el tipo de &apapi?
int* api;
Triple Apuntador a entero
int** apapi;
d) ¿Cuál es el valor de &apapi? 0028FEE4
x = 5;
0028FEEC
e) ¿Qué valor tiene *apapi? api = &x;
5 apapi= &api;
f) ¿Qué valor tiene **apapi?
0028FEEC printf("%p\n",&x);
g) ¿Qué valor tiene apapi[0]
5 printf("%p\n",api);
h) ¿Qué valor tiene apapi[0][0]? printf("%p\n",apapi);
5 printf("%p\n",&apapi);
i) ¿Qué pasa con *apapi[0]?
5 return 0;
j) ¿Qué pasa con **apapi? }
4. Dado el siguiente código responde

a) ¿Cuál es la salida? 8 #include <stdio.h>

b) ¿Cuál es el valor de apapi? La dirección de api int main(){


int x,y;
c) ¿Cuál es el tipo de &apapi?
int* api;
Triple Apuntador a entero
int** apapi;
d) ¿Cuál es el valor de &apapi? Dirección de apapi
x = 4; y = 8;
La dirección de x
e) ¿Qué valor tiene *apapi? api = &x;
8 apapi= &api;
f) ¿Qué valor tiene **apapi? **apapi = y;
La dirección de x
g) ¿Qué valor tiene apapi[0]
8 printf("%d\n",x);
h) ¿Qué valor tiene apapi[0][0]? return 0;
8 }
i) ¿Qué pasa con *apapi[0]?
8
j) ¿Qué pasa con **apapi?
5. Dado el siguiente código responde

a) ¿Cuál es la salida? 0028FEEC #include <stdio.h>


>0028FED0
b) ¿Cuál es el valor de a? 0028FEEC >0028FEEC int f(int* a){
>6 printf(">%p\n",&a);
c) ¿Cuál es el tipo de a? 7 printf(">%p\n",a);
Apuntador a entero printf(">%d\n",*a);
return *a+1;
d) ¿Cuál es el valor de &a? 0028FED0 }
e) ¿Qué valor tiene *a? 6
int main(){
f) ¿Qué tipo tiene *a? entero int x;
x = 6;
g) ¿Qué valor tiene a[0] 6 printf("%p\n",&x);
h) ¿Qué pasa con *a[0]? Marca error printf("%d\n",f(&x));
return 0;
i) ¿Qué pasa con *(a+1)? basura }
6. Dado el siguiente código responde

a) ¿Cuál es la salida? 0028FEEC #include <stdio.h>


>0028FED0
b) ¿Cuál es el valor de a? 0028FEEC >0028FEEC int f(int* a){
>6 printf(">%p\n",&a);
c) ¿Cuál es el tipo de a? 7 printf(">%p\n",a);
Apuntador a entero printf(">%d\n",*a);
return *a+1;
d) ¿Cuál es el valor de &a? 0028FED0 }
e) ¿Qué valor tiene *a? 6
int main(){
f) ¿Qué tipo tiene *a? entero int x[] ={6};
printf("%p\n",&x[0]);
g) ¿Qué valor tiene a[0] 6 printf("%d\n",f(&x[0]));
h) ¿Qué pasa con *a[0]? Marca error return 0;
}
i) ¿Qué pasa con *(a+1)? basura
7. Dado el siguiente código responde

3 #include <stdio.h>
a) ¿Cuál es la salida?
0028FEDC
b) ¿Cuál es el valor de x? 0028FEC8 1 int main(){
int x[10] = {1,2,3,5,7,11};
0028FEC8
c) ¿Cuál es el valor de y? 0028FEB4
0028FEB4
int* y[5] = {x,x+5,x+2,x+3};
int z[5] = {3,2,1};
d) ¿Cuál es el valor de z+3? 0028FEAC 0028FEA0 printf("%d\n",x[2]);
5 printf("%p\n",x+5);
e) ¿Cuál es el valor de y[1]? 0028FEDC 11 printf("%d\n",*y[0]);
f) ¿Qué valor tiene *y[2]? 3 4 printf("%p\n",y[0]);
printf("%p\n",y);
g) ¿Qué valor tiene y[4] NULL printf("%p\n",z);
printf("%d\n",x[z[0]]);
h) ¿Qué valor tiene *(y[1]+3) 0 printf("%d\n",*y[z[2]]);
printf("%d\n",*y[z[2]+1]+1);
i) ¿Qué pasa con *y[x[z[*(y[2]-1)]]]? 3 return 0;
}
j) ¿Qué pasa con *y[x[*(z+(*(y+2)-1)[0])]]+1? 4
8. Dado el siguiente código responde

a) ¿Cuál es la salida? 1 9 5 15 19 27 54 64 73

b) ¿Cuál es el valor de aux al inicio? #include <stdio.h>

Dirección de y X+9 &x[9] int main(){


int x[10] = {15,5,19,82,73,64,54,27,9,1};
c) ¿Cuál es el valor de *y? &x[4] int* y[10] = {x+9,x+8,x+1,x,x+2,
x+7,x+6,x+5,x+4,x+3};
d) ¿Cuál es el valor final de *aux+1?
x+8 &x[8]
int i; int **aux;
e) ¿Cuál es el valor de y[1]? 5 aux = y;
while(**aux!=82)
f) ¿Qué valor tiene *y[2]? X+2 &x[2] printf(" %d ",**aux++);
return 0;
g) ¿Qué valor tiene y[4] 1 }

h) ¿Qué valor tiene *(y[1]+1) 9

i) ¿Qué pasa con *y[x[*y[x[1]]]+1]?


Preguntas… Gracias

:D

También podría gustarte