Oui, mais attention ! Ton truc ne marche que si il y a bien un int a l´adresse du pointeur
(donc si tu déclaré un int* )
Car si tu pointes sur un double, une structure, ou n´importe quoi, et que tu demandes un %ld dessus, tu vas avoir une valeur "exotique"
Allez, un truc tordu pour t´embrouiller (ou pour que tu comprennes) :
Je crée un tableau de char, dans lequel j´écris "plouf" :
char t[50] = "plouf";
je crée un pointeur, que je mets dessus :
char* p = &t[0]; --> je mets mon pointeur a l´adresse du premier élément, donc du "p" de "plouf"
En mémoire, a l´adresse pointée par p, j´ai : "plouf"
mais en mémoire, c´est stocké en ASCII,
http://www.asciitable.com/
du coup, en mémoire, j´ai :
112 108 111 117 102 0
si maintenant, je demande un printf("%ld",p); qu´est ce que j´obtiens ?
L´exe interprete donc le segment pointé par p comme un int.
Du coup, il va prendre les 4 octets (qui composent un int) et les interpréter comme tel :
112 108 111 117
--> il va te donner le int qui est codé comme ça (et crois moi, c´est un grand int 