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
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
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
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
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
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
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.
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.