Documente Academic
Documente Profesional
Documente Cultură
Algorithmique et programmation
14/03/2007
o o
Si P pointe sur une composante quelconque d'un tableau, alors P+1 pointe sur la composante suivante. Plus gnralement, P+i pointe sur la i-ime composante derrire P et P-i pointe sur la i-ime composante devant P.
14/03/2007
X contient la valeur du 10-ime lment de A, (c.--d. celle de A[9]). Une donne du type float ayant besoin de 4 octets, le compilateur obtient l'adresse P+9 en ajoutant 9 * 4 = 36 octets l'adresse dans P.
14/03/2007
Il existe toujours une diffrence essentielle entre un pointeur et le nom d'un tableau:
n Un pointeur est une variable, donc des oprations comme P = A ou P++ sont permises. Le nom d'un tableau est une constante, donc des oprations comme A = P ou A++ sont impossibles.
Soit un tableau A d'un type quelconque et i un indice pour les composantes de A, alors
A dsigne l'adresse de A[0] A+i dsigne l'adresse de A[i] *(A+i) dsigne le contenu de A[i]
Si P = A, alors
P pointe sur l'lment A[0] P+i pointe sur l'lment A[i] *(P+i) dsigne le contenu de A[i]
14/03/2007
Sources d'erreurs
Un bon nombre d'erreurs provient de la confusion entre soit contenu et adresse, soit pointeur et variable. Revoyons donc les trois types de dclarations que nous connaissons jusqu'ici et rsumons les possibilits d'accs aux donnes qui se prsentent. Les variables et leur utilisation int A; dclare une variable simple du type int A dsigne le contenu de A &A dsigne l'adresse de A int B[]; dclare un tableau d'lments du type int B dsigne l'adresse de la premire composante de B. (Cette adresse est toujours constante) B[i] dsigne le contenu de la composante i du tableau &B[i] dsigne l'adresse de la composante i du tableau en utilisant le formalisme pointeur: B+i dsigne l'adresse de la composante i du tableau *(B+i) dsigne le contenu de la composante i du tableau
14/03/2007
o o o o o o o o
14/03/2007
14/03/2007
14/03/2007
14/03/2007
o o
Allocation dynamique La rservation de la mmoire pour les 10 phrases peut donc seulement se faire pendant l'excution du programme programme. Nous parlons dans ce cas de l'allocation dynamique de la mmoire.
10
14/03/2007
11
14/03/2007
La commande exit S'il n'y a pas assez de mmoire pour effectuer une action avec succs, il est conseill d'interrompre l'excution du programme l'aide de la commande exit (de <stdlib>) et de renvoyer une valeur diffrente de zro comme code d'erreur du programme
12
14/03/2007
for (I=0,J=9 ; I<J ; I++,J--) { PAIDE = TEXTE[I]; TEXTE[I] = TEXTE[J]; TEXTE[J] = PAIDE; }
13
14/03/2007
Exemple
14
14/03/2007
15
14/03/2007
16
14/03/2007
17
14/03/2007
18
14/03/2007
19