Post

CM02 Pointeur

Télécharger le CM02 Pointeur en pdf

Pages : 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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

Page 1 : INFORMATIQUE 2I I . L E S P O I N T E U R S

page 1

Page 2 : •Pourquoi scanf“d”,&a alors que printf“d”,a?•Pourquoi scanf“d”,&c alors que scanf“s”, c?•Comment faire pour retourner plusieurs valeurs depuis une fonction?•Pourquoi les éléments d'un tableau passé en paramètre d’une fonctionsont modifiés et pas les variables « classiques »?Les mystères du C

page 2

Page 3 : •Une variable est stockée dans la RAM de l’ordinateur•Chaque cellule de la mémoire est designée par une adresse.•Une variable est accessible par son nomRappelinta = 2;float b = 10;Adresse Valeur 115411552………10 02810ab

page 3

Page 4 : •On peut acceder à l’adresse d’une variable grace à &•a = 2 &a = 1155 b=10 &b=10 028Adresse d’une variableinta = 2;float b = 10;Adresse Valeur 115411552………10 02810ab

page 4

Page 5 : •On peut acceder à l’adresse d’une variable grace à &•a = 2 &a = 1155 b=10 &b=10 028Adresse d’une variableinta = 2;float b = 10;Adresse Valeur 115411552………10 02810ab

page 5

Page 6 : •En pratiqueAdresse d’une variable// Programme d'exemple pour afficher// les adresses des variablesint mainint a = 2;int b = 10;printf"a=db=d&a=p&b=p\n", a, b, &a, &b;return 0;

page 6

Page 7 : •En pratiqueAdresse d’une variable// Programme d'exemple pour afficher// les adresses des variablesint mainint a = 2;int b = 10;printf"a=db=d&a=p&b=p\n", a, b, &a, &b;return 0;a=2b=10&a=0x7ffde2010c0c&b=0x7ffde2010c08

page 7

Page 8 : •En pratique•p est le format pour afficher des adresses en hexa-decimal Adresse d’une variable// Programme d'exemple pour afficher// les adresses des variablesint mainint a = 2;int b = 10;printf"a=db=d&a=p&b=p\n", a, b, &a, &b;return 0;a=2b=10&a=0x7ffde2010c0c&b=0x7ffde2010c08

page 8

Page 9 : int a =2; float b = 10;scanf«d », &a ; Adresse Valeur 115411552………10 02810abAdresse de stockage de la variable saisie au clavier=« mettre la valeur saisie à l’adresse &a » Adresse d’une variable: scanf

page 9

Page 10 : Adresse Valeur 115411552………10 02810abAdresse d’une variable: scanfint a =2; float b = 10;scanf«d », &a ;scanf« d »,1155;scanf«d », a ;scanf« d »,2;abEspace mémoire non autorisé : erreur de segmentation !

page 10

Page 11 : • Principe : accéder à une variable par son adresse plutôt que par son nom. • Un pointeur est :• Une variable donr la valeur est une adresse mémoire …Les pointeurs

page 11

Page 12 : • Principe : accéder à une variable par son adresse plutôt que par son nom. • Un pointeur est :• Une variable donr la valeur est une adresse mémoire …• L’adresse d’une autre variable !Les pointeursAdresse Valeur 115411552………10 0281155apaOn dit que pa pointe sur a.

page 12

Page 13 : •Un pointeur peut pointer sur tout type de données entier, reel, autrepointeur ! …•Il est déclaré avec le caractère •Un pointeur est déclaré avec le type de la variable sur laquelle il pointe Les pointeurs : déclaration Type nomPointeur; Type de la variable pointéeNom du pointeur

page 13

Page 14 : •Un pointeur peut pointer sur tout type de données entier, reel, autrepointeur ! …•Il est déclaré avec le caractère •Un pointeur est déclaré avec le type de la variable sur laquelle il pointe Les pointeurs : déclaration Type nomPointeur; Type nomPointeur;Type nomPointeur;ouou

page 14

Page 15 : •Exemple :Adresse Valeur 1154???1155…5340???…10 02810 029???……22 222???inta;floatb;intp1; // pointeur sur intfloat p2; // pointeur sur floatap1bp2Les pointeurs : déclaration

page 15

Page 16 : •Exemple :Adresse Valeur 115451155…5340???…10 02810 029???……22 222???inta;floatb;intp1; // pointeur sur intfloat p2; // pointeur sur floata=5;ap1bp2Les pointeurs : déclaration

page 16

Page 17 : •Exemple :Adresse Valeur 115451155…5340???…10 02810 029???……22 2221154inta;floatb;intp1; // pointeur sur intfloat p2; // pointeur sur floata=5;p1=&a; // prend l’adresse de aap1bp2Les pointeurs : déclaration

page 17

Page 18 : •Exemple :Adresse Valeur 115451155…5340???…10 02810 0292,5……22 2221154inta;floatb;intp1; // pointeur sur intfloat p2; // pointeur sur floata=5;p1=&a; // prend l’adresse de ab=2.5;ap1bp2Les pointeurs : déclaration

page 18

Page 19 : •Exemple :Adresse Valeur 115451155…534010 029…10 02810 0292,5……22 2221154inta;floatb;intp1; // pointeur sur intfloat p2; // pointeur sur floata=5;p1=&a; // prend l’adresse de ab=2.5;p2=&b //prend l’adresse de bap1bp2Les pointeurs : déclaration

page 19

Page 20 : •Exemple :Adresse Valeur 115451155…534010 029…10 02810 0292,5……22 2221154inta;floatb;intp1; // pointeur sur intfloat p2; // pointeur sur floata=5;p1=&a; // prend l’adresse de ab=2.5;p2=&b //prend l’adresse de bap1bp2Les pointeurs : déclaration p1 pointe sur ap2 pointe sur b

page 20

Page 21 : Les pointeurs : initialisation • Pour initialiser un pointeur indiquer qu’il ne pointe sur aucune variable, on utilise le mot clef NULL cette constante indique la valeur 0Type nomPointeur = NULL; //on pointe à l’adresse 0 ⚠️Il est important d’initialiser les pointeurs ⚠️pour ne pas risquer de modifier un espace mémoire interdit

page 21

Page 22 : Les pointeurs : utilisation • Un pointeur permet d’accéder à une variable via son adresse• Le caractère permet d’accéder à la variable pointée par le pointeur. Sa signification est « ce qui est contenu dans l’adresse »• Exemple inta;intp1; // pointeur sur inta= 5;p1 = &a;// prend l'adresse de aprintf" a =d \n",a;printf"p1=p \n",p1;p1 = 10;printf" a =d \n",a;

page 22

Page 23 : Les pointeurs : utilisation • Un pointeur permet d’accéder à une variable via son adresse• Le caractère permet d’accéder à la variable pointée par le pointeur. Sa signification est « ce qui est contenu dans l’adresse »• Exemple inta;intp1; // pointeur sur inta= 5;p1 = &a;// prend l'adresse de aprintf" a =d \n",a;printf"p1=p \n",p1;p1 = 10;printf" a =d \n",a;Adresse Valeur 1154???1155…5340…10 02810 029???……22 222

page 23

Page 24 : Les pointeurs : utilisation • Un pointeur permet d’accéder à une variable via son adresse• Le caractère permet d’accéder à la variable pointée par le pointeur. Sa signification est « ce qui est contenu dans l’adresse »• Exemple inta;intp1; // pointeur sur inta= 5;p1 = &a;// prend l'adresse de aprintf" a =d \n",a;printf"p1=p \n",p1;p1 = 10;printf" a =d \n",a;Adresse Valeur 1154???1155…5340…10 02810 029???……22 222a

page 24

Page 25 : Les pointeurs : utilisation • Un pointeur permet d’accéder à une variable via son adresse• Le caractère permet d’accéder à la variable pointée par le pointeur. Sa signification est « ce qui est contenu dans l’adresse »• Exemple inta;intp1; // pointeur sur inta= 5;p1 = &a;// prend l'adresse de aprintf" a =d \n",a;printf"p1=p \n",p1;p1 = 10;printf" a =d \n",a;Adresse Valeur 1154???1155…5340…10 02810 029???……22 222ap1

page 25

Page 26 : Les pointeurs : utilisation • Un pointeur permet d’accéder à une variable via son adresse• Le caractère permet d’accéder à la variable pointée par le pointeur. Sa signification est « ce qui est contenu dans l’adresse »• Exemple inta;intp1; // pointeur sur inta= 5;p1 = &a;// prend l'adresse de aprintf" a =d \n",a;printf"p1=p \n",p1;p1 = 10;printf" a =d \n",a;Adresse Valeur 115451155…5340…10 02810 029???……22 222ap1

page 26

Page 27 : Les pointeurs : utilisation • Un pointeur permet d’accéder à une variable via son adresse• Le caractère permet d’accéder à la variable pointée par le pointeur. Sa signification est « ce qui est contenu dans l’adresse »• Exemple inta;intp1; // pointeur sur inta= 5;p1 = &a;// prend l'adresse de aprintf" a =d \n",a;printf"p1=p \n",p1;p1 = 10;printf" a =d \n",a;Adresse Valeur 115451155…5340…10 02810 0291154……22 222ap1

page 27

Page 28 : Les pointeurs : utilisation • Un pointeur permet d’accéder à une variable via son adresse• Le caractère permet d’accéder à la variable pointée par le pointeur. Sa signification est « ce qui est contenu dans l’adresse »• Exemple inta;intp1; // pointeur sur inta= 5;p1 = &a;// prend l'adresse de aprintf" a =d \n",a;printf"p1=p \n",p1;p1 = 10;printf" a =d \n",a;Adresse Valeur 115451155…5340…10 02810 0291154……22 222ap1a=5

page 28

Page 29 : Les pointeurs : utilisation • Un pointeur permet d’accéder à une variable via son adresse• Le caractère permet d’accéder à la variable pointée par le pointeur. Sa signification est « ce qui est contenu dans l’adresse »• Exemple inta;intp1; // pointeur sur inta= 5;p1 = &a;// prend l'adresse de aprintf" a =d \n",a;printf"p1=p \n",p1;p1 = 10;printf" a =d \n",a;Adresse Valeur 115451155…5340…10 02810 0291154……22 222ap1a=5p1=5

page 29

Page 30 : Les pointeurs : utilisation • Un pointeur permet d’accéder à une variable via son adresse• Le caractère permet d’accéder à la variable pointée par le pointeur. Sa signification est « ce qui est contenu dans l’adresse »• Exemple inta;intp1; // pointeur sur inta= 5;p1 = &a;// prend l'adresse de aprintf" a =d \n",a;printf"p1=p \n",p1;p1 = 10;printf" a =d \n",a;Adresse Valeur 1154101155…5340…10 02810 0291154……22 222ap1a=5p1=5

page 30

Page 31 : Les pointeurs : utilisation • Un pointeur permet d’accéder à une variable via son adresse• Le caractère permet d’accéder à la variable pointée par le pointeur. Sa signification est « ce qui est contenu dans l’adresse »• Exemple inta;intp1; // pointeur sur inta= 5;p1 = &a;// prend l'adresse de aprintf" a =d \n",a;printf"p1=p \n",p1;p1 = 10;printf" a =d \n",a;Adresse Valeur 1154101155…5340…10 02810 0291154……22 222ap1a=5p1=5a=10

page 31

Page 32 : Les pointeurs : utilisation • Exercice Adresse Valeur 11541155…5340…10 02810 029……22 222inta;floatb;intp1;float p2;a= 5;p1= &a;b= 2.5;p2= &b;p1 = 4;b= 0.3;Quelle est la valeur des variables suivantes ? a= p1= p1 =b= p2 = p2 =

page 32

Page 33 : Les pointeurs : utilisation • Exercice Adresse Valeur 11541155…5340…10 02810 029……22 222inta;floatb;intp1;float p2;a= 5;p1= &a;b= 2.5;p2= &b;p1 = 4;b= 0.3;Quelle est la valeur des variables suivantes ? a= 4 p1= &a p1 = 4b= 0,3 p2 =&b p2 = 0,3

page 33

Page 34 : Les pointeurs : utilisation • Objectif : écrire une fonction qui échange deux valeurs passées en paramètre.int switchint a, int bint tmp;tmp=a;a=b;b=tmp;returna;returnb;

page 34

Page 35 : Les pointeurs : utilisation • Objectif : écrire une fonction qui échange deux valeurs passées en paramètre.int switchint a, int bint tmp;tmp=a;a=b;b=tmp;returna;returnb;On ne peut pas retourner deux valeurs !Comment faire ?

page 35

Page 36 : Les pointeurs : utilisation • Objectif : écrire une fonction qui échange deux valeurs passées en paramètre.• Rappel : ce qui se passe en mémoireint switchint a, int bint tmp;tmp=a;a=b;b=tmp;returna;int mainint x=3;int y=4;int z=switchx,y;return 0;Adresse Valeur 11541158115C…5340…10 02810 02C10 030…22 222

page 36

Page 37 : Les pointeurs : utilisation • Objectif : écrire une fonction qui échange deux valeurs passées en paramètre.• Rappel : ce qui se passe en mémoireint switchint a, int bint tmp;tmp=a;a=b;b=tmp;returna;int mainint x=3;int y=4;int z=switchx,y;return 0;Adresse Valeur 115431158115C…5340…10 02810 02C10 030…22 222x

page 37

Page 38 : Les pointeurs : utilisation • Objectif : écrire une fonction qui échange deux valeurs passées en paramètre.• Rappel : ce qui se passe en mémoireint switchint a, int bint tmp;tmp=a;a=b;b=tmp;returna;int mainint x=3;int y=4;int z=switchx,y;return 0;Adresse Valeur 1154311584115C…5340…10 02810 02C10 030…22 222xy

page 38

Page 39 : Les pointeurs : utilisation • Objectif : écrire une fonction qui échange deux valeurs passées en paramètre.• Rappel : ce qui se passe en mémoireint switchint a, int bint tmp;tmp=a;a=b;b=tmp;returna;int mainint x=3;int y=4;int z=switchx,y;return 0;Adresse Valeur 1154311584115C…5340…10 028310 02C410 030…22 222xyabLes valeurs des variables passées en paramètres sont copiées: c’est un passage par valeur

page 39

Page 40 : Les pointeurs : utilisation • Objectif : écrire une fonction qui échange deux valeurs passées en paramètre.• Rappel : ce qui se passe en mémoireint switchint a, int bint tmp;tmp=a;a=b;b=tmp;returna;int mainint x=3;int y=4;int z=switchx,y;return 0;Adresse Valeur 1154311584115C…5340…10 028310 02C410 030…22 222xyabtmp

page 40

Page 41 : Les pointeurs : utilisation • Objectif : écrire une fonction qui échange deux valeurs passées en paramètre.• Rappel : ce qui se passe en mémoireint switchint a, int bint tmp;tmp=a;a=b;b=tmp;returna;int mainint x=3;int y=4;int z=switchx,y;return 0;Adresse Valeur 1154311584115C…5340…10 028310 02C410 0303…22 222xyabtmp

page 41

Page 42 : Les pointeurs : utilisation • Objectif : écrire une fonction qui échange deux valeurs passées en paramètre.• Rappel : ce qui se passe en mémoireint switchint a, int bint tmp;tmp=a;a=b;b=tmp;returna;int mainint x=3;int y=4;int z=switchx,y;return 0;Adresse Valeur 1154311584115C…5340…10 028410 02C410 0303…22 222xyabtmpModifier a ne modifie pas x: les variables sont décorrélées

page 42

Page 43 : Les pointeurs : utilisation • Objectif : écrire une fonction qui échange deux valeurs passées en paramètre.• Rappel : ce qui se passe en mémoireint switchint a, int bint tmp;tmp=a;a=b;b=tmp;returna;int mainint x=3;int y=4;int z=switchx,y;return 0;Adresse Valeur 1154311584115C…5340…10 028410 02C310 0303…22 222xyabtmp

page 43

Page 44 : Les pointeurs : utilisation • Objectif : écrire une fonction qui échange deux valeurs passées en paramètre.• Rappel : ce qui se passe en mémoireint switchint a, int bint tmp;tmp=a;a=b;b=tmp;returna;int mainint x=3;int y=4;int z=switchx,y;return 0;Adresse Valeur 1154311584115C…5340…10 028410 02C310 0303…22 2224xyabtmpz

page 44

Page 45 : Les pointeurs : utilisation • Principe : passer en argument d’une fonction des adresses plutôt que des valeurs.void switchint pa, int pbint tmp;tmp=pa;pa=pb;pb=tmp;int mainint x=3;int y=4;switch&x,&y;return 0;

page 45

Page 46 : Les pointeurs : utilisation • Principe : passer en argument d’une fonction des adresses plutôt que des valeurs.void switchint pa, int pbint tmp;tmp=pa;pa=pb;pb=tmp;int mainint x=3;int y=4;switch&x,&y;return 0;AdresseValeur11541158115C…5340…10 02810 02C10 030…22 222

page 46

Page 47 : Les pointeurs : utilisation • Principe : passer en argument d’une fonction des adresses plutôt que des valeurs.void switchint pa, int pbint tmp;tmp=pa;pa=pb;pb=tmp;int mainint x=3;int y=4;switch&x,&y;return 0;AdresseValeur115431158115C…5340…10 02810 02C10 030…22 222x

page 47

Page 48 : Les pointeurs : utilisation • Principe : passer en argument d’une fonction des adresses plutôt que des valeurs.void switchint pa, int pbint tmp;tmp=pa;pa=pb;pb=tmp;int mainint x=3;int y=4;switch&x,&y;return 0;AdresseValeur1154311584115C…5340…10 02810 02C10 030…22 222xy

page 48

Page 49 : Les pointeurs : utilisation • Principe : passer en argument d’une fonction des adresses plutôt que des valeurs.void switchint pa, int pbint tmp;tmp=pa;pa=pb;pb=tmp;int mainint x=3;int y=4;switch&x,&y;return 0;AdresseValeur1154311584115C…5340…10 02810 02C10 030…22 222xypapb

page 49

Page 50 : Les pointeurs : utilisation • Principe : passer en argument d’une fonction des adresses plutôt que des valeurs.void switchint pa, int pbint tmp;tmp=pa;pa=pb;pb=tmp;int mainint x=3;int y=4;switch&x,&y;return 0;AdresseValeur1154311584115C…5340…10 028115410 02C115810 030…22 222xypapb

page 50

Page 51 : Les pointeurs : utilisation • Principe : passer en argument d’une fonction des adresses plutôt que des valeurs.void switchint pa, int pbint tmp;tmp=pa;pa=pb;pb=tmp;int mainint x=3;int y=4;switch&x,&y;return 0;AdresseValeur1154311584115C…5340…10 028115410 02C115810 030…22 222xypapbtmp

page 51

Page 52 : Les pointeurs : utilisation • Principe : passer en argument d’une fonction des adresses plutôt que des valeurs.void switchint pa, int pbint tmp;tmp=pa;pa=pb;pb=tmp;int mainint x=3;int y=4;switch&x,&y;return 0;AdresseValeur1154311584115C…5340…10 028115410 02C115810 0303…22 222xypapbtmpOn accède à la valeur de a via son adresse

page 52

Page 53 : Les pointeurs : utilisation • Principe : passer en argument d’une fonction des adresses plutôt que des valeurs.void switchint pa, int pbint tmp;tmp=pa;pa=pb;pb=tmp;int mainint x=3;int y=4;switch&x,&y;return 0;AdresseValeur1154411584115C…5340…10 028115410 02C115810 0303…22 222xypapbtmp« la valeur de la variable pointée par pa = la valeur de la variable pointée par pb »

page 53

Page 54 : Les pointeurs : utilisation • Principe : passer en argument d’une fonction des adresses plutôt que des valeurs.void switchint pa, int pbint tmp;tmp=pa;pa=pb;pb=tmp;int mainint x=3;int y=4;switch&x,&y;return 0;AdresseValeur1154411583115C…5340…10 028115410 02C115810 0303…22 222xypapbtmpOn modifie la valeur des variables via leur adresse

page 54

Page 55 : Les pointeurs : utilisation • Principe : passer en argument d’une fonction des adresses plutôt que des valeurs.void switchint pa, int pbint tmp;tmp=pa;pa=pb;pb=tmp;int mainint x=3;int y=4;switch&x,&y;return 0;AdresseValeur1154411583115C…5340…10 028115410 02C115810 0303…22 222xypapbtmpPas besoin de return !

page 55

Page 56 : Le passage par adresse• Principe : passer en argument d’une fonction des adresses plutôt que des valeurs.• La fonction/procédure prends donc des adresses en arguments, soit des types pointeurs.• Une variable dont l’adresse passé est modifiable dans la fonction.• C’est le passage par adresse en opposition au passage par valeur.type nomFonctionint arg1, float arg2, …

page 56

Page 57 : Tableaux et pointeurs• Rappel : les valeurs d’un tableau sont à la suite dans la mémoire. Adresse Valeur 115413000…………22 222int mainint tab5=1,3return 0;tab0tab1tab2tab3tab4

page 57

Page 58 : Tableaux et pointeurs• Rappel : les valeurs d’un tableau sont à la suite dans la mémoire.• Lorsqu’un tableau est déclaré:• Un espace mémoire de la bonne taille est réservé• Un pointeur constant en lecture seule portant le nom du tableau est crée.Il pointe sur la première case du tableau. Adresse Valeur 115413000…………22 2221154int mainint tab5=1,3return 0;tab0tab1tab2tab3tab4tab

page 58

Page 59 : Tableaux et pointeurs• Rappel : les valeurs d’un tableau sont à la suite dans la mémoire.• Lorsqu’un tableau est déclaré:• Un espace mémoire de la bonne taille est réservé• Un pointeur constant en lecture seule portant le nom du tableau est crée.Il pointe sur la première case du tableau. • Manipuler un tableau revient à utiliser un pointeur. On accéde à ses élément par adresse.• On a l’équivalence suivante :tabi ⇔tab+i

page 59

Page 60 : Tableaux et pointeurs• On a l’équivalence suivante :• Illustration : tabi ⇔tab+iAdresseValeur1154 = tab+013000…………22 2221154tab0tab

page 60

Page 61 : Tableaux et pointeurs• La manipulation d’un tableau peut donc se faire en formalisme tableau avec les caractères ou en formalisme pointeur.define TAILLE 20int mainint i;int tabTAILLE=0;fori=0;iTAILLE;i++tabi=10;return 0;define TAILLE 20int mainint i;int tabTAILLE=0;fori=0;iTAILLE;i++tab+i=10;return 0;

page 61

Page 62 : Tableaux et pointeurs• Exercice : quel résultat donne les commandes en rouges ? define TAILLE 20int mainint tab1TAILLE=0;int tab2TAILLE=0;forint i=0;iTAILLE;i++tab1i=i;tab2=tab1;tab210=0;return 0; Adresse Valeur 1154…5340………22 222…30 000

page 62

Page 63 : Tableaux et pointeurs• Exercice : quel résultat donne les commandes en rouges ? define TAILLE 20int mainint tab1TAILLE=0;int tab2TAILLE=0;forint i=0;iTAILLE;i++tab1i=i;tab2=tab1;tab210=0;return 0; Adresse Valeur 1154…5340………22 222…30 000On égalise les pointeurs et donc tab2= adresse de tab10tab2 pointe sur le 1 er tableau - le second tableau n’est plus accessible.

page 63

Page 64 : Tableaux et pointeurs•Exercice : pourquoi écrit-on :•scanf"c", &nom pour un caractère ?•scanf"s", nom pour une chaîne de caractère ?

page 64

Page 65 : Tableaux et pointeurs•Exercice : pourquoi écrit-on :•scanf"c", &nom pour un caractère ?•scanf"s", nom pour une chaîne de caractère ?•Car une chaine de caractère est un tableau! « nom » est donc un pointeur l’adresse de la première case de la chaîne de caractère

page 65

Page 66 : Tableaux, pointeurs et fonctions• Le passage d’un tableau en paramètre d’une fonction se fait donc par adresse. On a l’équivalence:• Un tableau, déclaré dans une fonction appelante et, passé en paramètre lors d'un appel, peut être modifié dans la fonction appelée.• Cela permet donc à 2 fonctions qui possèdent des contextes mémoires séparés de partager un même espace mémoire.type nomFonctionint tab, int taille …type nomFonctionint tab, int taille…⇔

page 66

Page 67 : Conclusion•Un pointeur est une variable contenant une adresse. Il se déclare avec le type de la variable sur laquelle il pointe. •Le caractère « » associé au pointeur permet d’avoir accès à la variable pointé. On peut la modifier, l’afficher… On accéder alors à cette variable par adresse plutôt que pas son nom.•Les utilités des pointeurs sont nombreuses: ils permettent de modifier par adresse des variable dans des fonctions ou sont à la base de la gestion des tableaux. Plus d’info au prochain cours!•Il est important de comprendre le fonctionnement de la mémoire pour pouvoir utiliser correctement les pointeurs!

page 67

Pages : 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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

Le contenu de cet article est la propriété exclusive de son auteur.