Pointeur

Fermé
sweetwink Messages postés 77 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 13 janvier 2009 - 9 déc. 2008 à 14:09
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 9 déc. 2008 à 14:25
Bonjour,
je me demande si l'un parmi vous pourrame faire la différence entre

& et * et quand est ce que je dois les utiliser

*pointeur=&nombre et ca qu'est ce qui il veut dire
merciiiiiiii

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
9 déc. 2008 à 14:22
Salut,
int *pt; signifie que tu déclares un pointeur. pt désignera l'adresse du pointeur, et cela pointera vers *pt.
int a=5; signifie que tu stockes la variable 5 à l'adresse mémoire &a.
Donc pt=&a; signifie que l'adresse de pt contiendra l'adresse de a, et que *pt pointera vers 5.
Donc *pt=6; modifiera la variable a.

Tu devrais regarder des tutoriaux pour approfondir cette notion très importante en C. Tu peux par exemple aller sur le site du zéro.
Cdlt
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
9 déc. 2008 à 14:25
!!!
rien à voir !
* sert à aller d'un pointeur vers sa valeur pointé, & sert à connâitre l'adresse (le premier pointeur) d'une variable c'est dire l'opération inverse.
si tu as une variable simple int a; et un pointeur int *p; Tu peux faire les opérations suivante :
*p=a; tu mets la valeur de a dans la cas mémoire pointée par p. *p et a restent indépendant
a=*p; opération inverse, tu mets la valeur pointé par p dans a;
p=&a; tu dit à p de pointer vers la variable a, c'est à dire que p prend la valeur de l'adresse de la variable a. *p et a ont la même valeur et sont synomine l'un de l'autre, c'est à dire que si tu modifie a tu modifie *p et inversement.
a=p, p=a, a=&p; sont des opérations valide mais à ne pas utiliser, il y a des chance que ça ne soit pas ce que tu veuille faire !
*a n'a aucun sens, car a est un entier. &p est l'adresse de la variable pointeur p. int **pp; pp=&p;
Si tu fais une ou deux heures d'assembleur, tu comprendra mieux ces notions de pointeur et d'adresse.
0