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
|
#include <stdio.h>
#include <stdlib.h>
int main( void ){
int x = 10;
int y = 20;
int z = y + x;
int *p = NULL;
p = &x; // p contient l(adresse de x = 10;;
fprintf( stdout, "addr %p = %d\n", p, *p );
*p = 20; // p change la valeur de x à 20;
fprintf( stdout, "addr %p = %d\n", p, *p );
fprintf( stdout, "addr %p = %d\n", (void*)&x, x );
p = &y; // p pointe sur y = 20 et x est egale a 20 toujour;
fprintf( stdout, "addr %p = %d\n", p, *p );
fprintf( stdout, "addr %p = %d\n", (void*)&x, x ); // 20
fprintf( stdout, "addr %p = %d\n", (void*)&y, y ); // 30
*p = 30; // p change la valeur de y à 30;
fprintf( stdout, "addr %p = %d\n", p, *p );
fprintf( stdout, "addr %p = %d\n", (void*)&y, y ); // 30
p = &z; //p pointe sur Z = 10 + 20 du dépard
fprintf( stdout, "addr %p = %d\n", p, *p );
fprintf( stdout, "addr %p = %d\n", (void*)&x, x );
fprintf( stdout, "addr %p = %d\n", (void*)&y, y );
fprintf( stdout, "addr %p = %d\n", (void*)&z, z );
*p = 40; // p change la valeur Z;
fprintf( stdout, "addr %p = %d\n", p, *p );
fprintf( stdout, "addr %p = %d\n", (void*)&y, y );
z = 41;
fprintf( stdout, "addr %p = %d\n", p, *p ); // P = 41 car il pointe sur z
x = 100;
y = 200;
*p = x+y;
fprintf( stdout, "addr %p = %d\n", p, *p );
fprintf( stdout, "addr %p = %d\n", (void*)&z, z ); //Z = 300
return EXIT_SUCCESS;
} |
Partager