Punteros y referencias
Publicado por belo (2 intervenciones) el 03/06/2020 09:40:56
Hola, soy nuevo por aquí y me embarcado este verano en aprender C y tengo una duda que no puedo entender.
¿Por qué el resultado de este programa, me devuelve en todos los casos direcciones de memoria diferentes, cuando en la función con punteros se supone que ataca directamente a las direcciones de memoria originales impresas en la función main?
Les agradecería mucho la ayuda.
¿Por qué el resultado de este programa, me devuelve en todos los casos direcciones de memoria diferentes, cuando en la función con punteros se supone que ataca directamente a las direcciones de memoria originales impresas en la función main?
Les agradecería mucho la ayuda.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
int intercambio_punteros(int *, int*);
void intercambio(int, int);
void main(void)
{
int a = 20, b = 30;
printf("Antes de la función:\n");
printf("a es %d y esta en %p\n", a, &a);
printf("b es %d y esta en %p\n", b, &b);
intercambio_punteros(&a, &b);
intercambio(a, b);
}
int intercambio_punteros(int *x, int *y)
{
printf("Durante la función punteros:\n");
printf("x es %d y esta en %p\n", *x, &x);
printf("y es %d y esta en %p\n", *y, &y);
}
void intercambio(int x, int y)
{
printf("Después de la función sin punteros:\n");
printf("x es %d y esta en %p\n", x, &x);
printf("y es %d y esta en %p\n", y, &y);
}
Valora esta pregunta
0