Made in Belgium
Offline
God Member
Karma: 0
Posts: 756
|
 |
« on: April 17, 2012, 11:28:49 am » |
Yop yop, Comme il a l'air d'être très demandé, je prépare un tutoriels sur l'utilisation des pointeurs et tableaux.
|
|
|
|
« Last Edit: June 26, 2012, 02:18:25 pm by osaka »
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 0
Posts: 405
|
 |
« Reply #1 on: April 17, 2012, 02:07:16 pm » |
Bonsoir et merci Osaka  J'ai survolé ton truc qui à l'air d'etre bien ,mais à cette heure ,j'avoue que ma concentration a un peu baissée  @+ William
|
|
|
|
|
Logged
|
The truth is elsewhere !!
|
|
|
|
France
Offline
Edison Member
Karma: 12
Posts: 1800
There is an Arduino for that
|
 |
« Reply #2 on: April 17, 2012, 02:08:44 pm » |
Page 9 void
loop()
{
int
maVariable
=
20;
int*
monPointeur1
=
&maVariable;
int*
monPointeur2
=
monPointeur1;
}
Mon
deuxième
pointeur
aura
pour
valeur
la
même
adresse
que
mon
premier
pointeur
et
pointera
donc
sur
la
même
variable.
C’est
comme
si
j’avais
fait
ceci
avec
une
variable
classique
:
int
maVariable1
=
20;
int
maVariable2
=
maVariable1
;
Ma
deuxième
variable
prend
la
même
valeur
(20)
que
la
première,
pour
les
pointeur
c’est
pareil
CQFD.
Le parallèle est dangereux et peut entraîner des incompréhensions de la part des débutants. Dans le cas de
maVariable1
et
maVariable12, elles ont chacune leur vie propre et modifier l'une ne change pas l'autre. Alors qu'avec les pointeurs ce n'est pas le cas, les 2 pointeurs pointent sur la même variable. PS: Après viendras la correction aurtaugrafik, j'ai la chance d'avoir une compagne qui est secrétaire de direction à portée de clavier. Ben elle va pas chômer. On sent que tu entretiens des rapports assez conflictuels avec les infinitifs et les participes passés. Autrement pour être constructif. Je pense (mais cet avis est personnel) que pour la clarté de la lecture il est préférable d'avoir les renvois en bas de page et non pas en fin de document. Cela évite les aller et retour entre la page en cours de lecture et la page des renvois. Il faudra aussi aborder l'arithmétique des pointeurs.
|
|
|
|
« Last Edit: April 17, 2012, 02:27:08 pm by fdufnews »
|
Logged
|
|
|
|
|
France S-O ou exil en IDF
Offline
Edison Member
Karma: 12
Posts: 1048
|
 |
« Reply #3 on: April 17, 2012, 02:39:31 pm » |
Bien, J'ai de la lecture pour les jours de pluie. Merci
|
|
|
|
|
Logged
|
Aides toi et la communauté t'aidera
|
|
|
|
Made in Belgium
Offline
God Member
Karma: 0
Posts: 756
|
 |
« Reply #4 on: April 17, 2012, 02:53:50 pm » |
Le parallèle est dangereux et peut entraîner des incompréhensions de la part des débutants.
Yop yop, C'est pour cela que je précise bien qu'il s'agit de la valeur du pointeur, il faudra peut être encore plus insisté sur ce point et rajouter un petit schéma ou autre pour ce cas là ? Dans le cas de
maVariable1
et
maVariable2, elles ont chacune leur vie propre et modifier l'une ne change pas l'autre. Alors qu'avec les pointeurs ce n'est pas le cas, les 2 pointeurs pointent sur la même variable.
Disons que là je parle bien du pointeur en temps que variable (d'où le comparatif) donc qui ont également leur vie propre, je peux modifier la valeur de l'un ou l'autre ou même supprimer l'un ou l'autre ou les deux ça ne change rien pour la variable pointée. Je vais quand même regardé à bien clarifié la chose. Grand merci pour ton retour. 
|
|
|
|
|
Logged
|
|
|
|
|
Made in Belgium
Offline
God Member
Karma: 0
Posts: 756
|
 |
« Reply #5 on: April 18, 2012, 02:43:59 pm » |
Quelques changements, j'ai tenté de clarifier certaines choses et ajouter quelques schémas (donc plus lourd  ). Est-ce plus accessible pour les débutants ?
|
|
|
|
« Last Edit: June 26, 2012, 02:22:36 pm by osaka »
|
Logged
|
|
|
|
|
France S-O ou exil en IDF
Offline
Edison Member
Karma: 12
Posts: 1048
|
 |
« Reply #6 on: April 19, 2012, 01:34:56 pm » |
Très franchement, en l'instant présent, je te fais confiance. Je pense que ça se gâtera (pour moi) quand j'aurais l'occasion de mettre en pratique
|
|
|
|
|
Logged
|
Aides toi et la communauté t'aidera
|
|
|
|
Made in Belgium
Offline
God Member
Karma: 0
Posts: 756
|
 |
« Reply #7 on: April 19, 2012, 04:42:52 pm » |
Très franchement, en l'instant présent, je te fais confiance. Je pense que ça se gâtera (pour moi) quand j'aurais l'occasion de mettre en pratique
Je vais essayé de mettre un maximum de schémas et exemples (j'ai ajouté un exemple pratique via arduino à la fin) et peut être quelques exercices comme il y a rien de tel que la pratique. Là je viens de commencer les tableaux, si quelqu'un à une remarque pour savoir si je suis dans le bon ? 
|
|
|
|
« Last Edit: April 19, 2012, 04:44:25 pm by osaka »
|
Logged
|
|
|
|
|
Made in Belgium
Offline
God Member
Karma: 0
Posts: 756
|
 |
« Reply #8 on: April 20, 2012, 12:34:25 pm » |
Yop Yop, Ai bien avancé sur les tableaux, toujours pas de remarques, suggestions ? Pour donner l'eau à la bouche  et savoir si ce tuto vous seras utile, vous pouvez tester ce code et voir si la sortie console correspond bien à vos attentes : void setup() { Serial.begin(9600); delay(2000); int tab[] = {1,2,3,4}; Serial.print(""); Serial.print("tab :"); Serial.println((int)tab); Serial.print("&tab :"); Serial.println((int)&tab); Serial.print("&tab[0] :"); Serial.println((int)&tab[0]); Serial.println(""); Serial.print("tab[0] :"); Serial.println(tab[0]); Serial.print("*tab :"); Serial.println(*tab); Serial.print("*tab+0 :"); Serial.println(*tab+0); }
void loop(){}
|
|
|
|
« Last Edit: April 20, 2012, 12:39:02 pm by osaka »
|
Logged
|
|
|
|
|
Corsica
Offline
Jr. Member
Karma: 0
Posts: 82
|
 |
« Reply #9 on: April 20, 2012, 12:53:44 pm » |
Bonsoir, J'ai lu attentivement ce tuto. (Difficile à suivre, pour l'instant, à cause de l'orthographe.  ) C'est clair, les schémas sympas. 1/ Ne faudrait-il pas donner des règles de prononciation du genre: int* monPointer = &maVariable; *monPointer = 16; du genre: "pointeur d'entier monPointer = adresse de maVariable" "variable pointée par monPointer = 16"2/Pointeurs, tableaux, OK, il faudrait "enchaîner" avec les strings, non? En tout cas, merci pour ce travail bien utile. PS
|
|
|
|
|
Logged
|
|
|
|
|
Aix en Provence
Offline
Full Member
Karma: 0
Posts: 229
Arduino rocks
|
 |
« Reply #10 on: May 24, 2012, 03:43:05 am » |
Merci Osaka pour ce super tutoriel que je viens de découvrir, Je vais le lire attentivement, car pour l'instant je n'ai jamais réussi à mettre en oeuvre les pointeurs en C. Alors que pour moi cela ne devrait pas être un problème de conceptualisation. Car j'ai, en son temps, pas mal programmé en assembleur en utilisant les différents modes d'adressage (indirect, indexé ...). Mais c'est plutôt les questions de syntaxe qui me font prendre les pieds dans le tapis; ce n'est probablement qu'une question d'habitude !
J'ai d'ailleurs une application toute trouvée, puisque dans mon projet de domotique, qui avance à petits pas (mais qui avance, je donnerai des nouvelles bientôt), pour l'instant pour tester le matériel j'ai défini mes plages horaires dans des tableaux, mais il va me falloir faire mieux bientôt.
Encore merci et bravo !
|
|
|
|
|
Logged
|
|
|
|
|
Made in Belgium
Offline
God Member
Karma: 0
Posts: 756
|
 |
« Reply #11 on: May 25, 2012, 05:31:45 pm » |
Alors que pour moi cela ne devrait pas être un problème de conceptualisation. Car j'ai, en son temps, pas mal programmé en assembleur en utilisant les différents modes d'adressage (indirect, indexé ...). Mais c'est plutôt les questions de syntaxe qui me font prendre les pieds dans le tapis; ce n'est probablement qu'une question d'habitude !
Yop BriBri, En effet en venant de l'assembleur et avec les petit schémas sur la mémoire, tu devrais assé vite faire le parallèle avec le code. La chose qui perturbe le plus c'est à quel moment utilisé le petit symbole '*', comme il ne signifie pas la même chose selon l'endroit où il ce situe et quand on l'utilise. Mais au final c'est comme tu le dis : ce n'est probablement qu'une question d'habitude !
|
|
|
|
|
Logged
|
|
|
|
|
Paris
Offline
Sr. Member
Karma: 0
Posts: 320
|
 |
« Reply #12 on: June 26, 2012, 02:05:58 pm » |
Aucun lien vers ton PDF ne fonctionne pour moi dans ton sujet 
|
|
|
|
|
Logged
|
EN: Libraries are my Gurus, they make me believe anything they want ! FR: Les librairies sont mes gourous, elles me font croire ce qu'elles veulent !
|
|
|
|
Made in Belgium
Offline
God Member
Karma: 0
Posts: 756
|
 |
« Reply #13 on: June 26, 2012, 02:21:34 pm » |
Aucun lien vers ton PDF ne fonctionne pour moi dans ton sujet  Petit problème en effet  , je l'ai mis en attachement dans le premier post. 
|
|
|
|
|
Logged
|
|
|
|
|
Paris
Offline
Sr. Member
Karma: 0
Posts: 320
|
 |
« Reply #14 on: June 27, 2012, 04:16:14 am » |
Hé bien c'est tout simplement génial, merci à toi.
En tout cas pour moi, la démystification est réussie (à noter que je manipulais déjà des tableaux).
Sev
|
|
|
|
|
Logged
|
EN: Libraries are my Gurus, they make me believe anything they want ! FR: Les librairies sont mes gourous, elles me font croire ce qu'elles veulent !
|
|
|
|
|