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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| #include <stdio.h>
void swap(void * d1 , void * d2)
{
void * tmp;
tmp = *(void **)d1;
*(void **)d1 = *(void **)d2;
*(void **)d2 = tmp;
}
void essai1()
{
int x=5;
int y=0;
printf("x=%d, y=%d, &x=%p, &y=%p\n", x, y, &x, &y);
swap(&x, &y);
printf("x=%d, y=%d, &x=%p, &y=%p\n", x, y, &x, &y);
}
void essai2()
{
char x='a';
char y='z';
printf("x=%c, y=%c, &x=%p, &y=%p\n", x, y, &x, &y);
swap(&x, &y);
printf("x=%c, y=%c, &x=%p, &y=%p\n", x, y, &x, &y);
}
void essai3()
{
typedef struct {
char *txt;
int i;
double d;
} t_xxx;
t_xxx x={"toto", 5, 3.1416};
t_xxx y={"titi", 7, 2.71828};
printf("x=%s,%d,%f, y=%s,%d,%f, &x=%p, &y=%p\n", x.txt, x.i, x.d, y.txt, y.i, y.d, &x, &y);
swap(&x, &y);
printf("x=%s,%d,%f, y=%s,%d,%f, &x=%p, &y=%p\n", x.txt, x.i, x.d, y.txt, y.i, y.d, &x, &y);
}
int main()
{
essai1();
essai2();
essai3();
} |
Partager