Documente Academic
Documente Profesional
Documente Cultură
Brahimi Mohammed
Les pointeurs
● Exemple de motivation.
void f(int a, int b)
{
int t;
a=4 Copie a=4 a=4
t=a ;
a=b ;
b=3 Copie b=3 b=3
b=t ;
}
Exemple de motivation
void f(int a, int b)
{
int t;
a=4 Copie a=3 a=4
t=a ;
t=4
a=b ;
b=3 Copie b=4 b=3
b=t ;
}
Exemple de motivation
Syntaxe
nom_pointeur : pointeur de type (Algorithmique)
type *nom_pointeur; (langage C)
Exemples (Algorithmique)
● Var PointeurSurAge : poninteur d'entier
● Var p : pointeur de réel
● Var q : pointeur de caracter
Exemples (C)
● int *PointeurSurAge ;
● double *p ;
● char *q ;
Opérateur « adresse de »: &
●
L'opérateur « & » ou « adr » est utilisé pour déterminer
l'adresse d'une variable.
Syntaxe
pointeurSurVariable = adr(Variable) (langage algorithmique)
pointeurSurVariable = &Variable (En langage C)
Exemples
Var
Age ????
Age:entier
PtrSurAge:pointeur d'entier
Début
Age 23
PtrSurAge adr(Age)
Fin
Exemples
Var
Age ????
Age:entier
PtrSurAge:pointeur d'entier
Début
Age 23
PtrSurAge adr(Age) PtrSurAge ????
Fin
Exemples
Var
Age 23
Age:entier
PtrSurAge:pointeur d'entier
Début
Age 23
PtrSurAge adr(Age) PtrSurAge ????
Fin
Exemples
Var
Age 23
Age:entier
PtrSurAge:pointeur d'entier
Début
Age 23
PtrSurAge adr(Age) PtrSurAge adr(Age)
Fin
Exemples (En langage C)
Void main()
Age 23
{
int Age ;
int *PtrSurAge ;
Age=23 ;
PtrSurAge= &Age ; PtrSurAge adr(Age)
}
Opérateur « contenu de »: *
● L'opérateur « * » ou « valeur » pour accéder à la valeur de l'emplacement
mémoire pointé par un pointeur.
Syntaxe (Algorithmique)
ptrAge : pointeur d'entier
Age : entier
Début
Age 5
ptrAge &age
printf("Valeur du contenu de ptrAge =%d",valeur(ptrAge))
Fin
Opérateur « contenu de »: *
● L'opérateur « * » ou « valeur » pour accéder à la valeur de
l'emplacement mémoire pointé par un pointeur.
Syntaxe
int *ptrAge ;
in Age ;
Age = 5;
ptrAge = &age ;
printf("Valeur du contenu de ptrAge =%d",*ptrAge) ;
Exemples
void main()
{
int a=3;
int *p=&a;
*p = *p+1;
printf(" a =%d ", a) ;
}
Exemples
void main()
a 3
{
int a=3;
int *p=&a;
*p = *p+1;
printf(" a =%d ", a) ; p ????
}
Exemples
void main()
a 3
{
int a=3;
int *p=&a;
*p = *p+1;
printf(" a =%d ", a) ; p Adr(a)
}
Exemples
void main()
a 3+1
{
int a=3;
int *p=&a;
*p = *p+1;
printf(" a =%d ", a) ; p Adr(a)
}
Exemples
void main()
a 4
{
int a=3;
int *p=&a;
*p = *p+1;
printf(" a =%d ", a) ; p Adr(a)
}
Exemples
void main()
a 4
{
int a=3;
int *p=&a;
*p = *p+1;
printf(" a =%d ", a) ; p Adr(a)
}
Exemples
void main()
{
int a=3;
int *p=&a;
a = a+1;
printf(" a =%d ", *p) ;
}
Exemples
void main()
a 3
{
int a=3;
int *p=&a;
a = a+1;
printf(" a =%d ", *p) ; p ????
}
Exemples
void main()
a 3
{
int a=3;
int *p=&a;
a = a+1;
printf(" a =%d ", *p) ; p Adr(a)
}
Exemples
void main()
a 3+1
{
int a=3;
int *p=&a;
a = a+1;
printf(" a =%d ", *p) ; p Adr(a)
}
Exemples
void main()
a 4
{
int a=3;
int *p=&a;
a = a+1;
printf(" a =%d ", *p) ; p Adr(a)
}
Exemples
void main()
a 4
{
int a=3;
int *p=&a;
a = a+1;
printf(" *p =%d ", *p) ; p Adr(a)
}
Exemple
Après l'exécution de l'instruction :
int *p=&a;
*p a
Exemple de motivation
int main()
{
a=4
int a= 4,b=3 ;
f(&a,&b) ;
b=3
}
Exemple de motivation
(Solution)
void f(int *a, int *b)
{
int t;
t=*a ;
*a=*b ;
*b=t ;
}
int main()
{
a=4 *a
int a= 4,b=3 ; t= ?
f(&a,&b) ;
b=3 *b
}
Exemple de motivation
(Solution)
void f(int *a, int *b)
{
int t;
t=*a ;
*a=*b ;
*b=t ;
}
int main()
{
a=4 *a
int a= 4,b=3 ; t= 4
?
f(&a,&b) ;
b=3 *b
}
Exemple de motivation
(Solution)
void f(int *a, int *b)
{
int t;
t=*a ;
*a=*b ;
*b=t ;
}
int main()
{
a=4
a=3 *a
int a= 4,b=3 ; t= 4
f(&a,&b) ;
b=3 *b
}
Exemple de motivation
(Solution)
void f(int *a, int *b)
{
int t;
t=*a ;
*a=*b ;
*b=t ;
}
int main()
{
a=3 *a
int a= 4,b=3 ; t= 4
f(&a,&b) ;
b=3
b=4 *b
}
Permutation avec succès
a=4 a=3 *a
t= 4
b=3 b=3
b=4 *b
Résumé