Professional Documents
Culture Documents
6 Pointeurs
6 Pointeurs
6 Pointeurs
Les pointeurs
Programmation en C
Laila AMIR
Laila AMIR
Introduction
Les pointeurs
Plan
1 Introduction
Intérêt des pointeurs
Adressage de variables
2 Les pointeurs
Notion d’un pointeur
Les opérateurs de base &, *
Déclaration d’un pointeur
Initialisation d’un pointeur
Accéder à une variable pointée
Laila AMIR
Introduction Intérêt des pointeurs
Les pointeurs Adressage de variables
Outline
1 Introduction
Intérêt des pointeurs
Adressage de variables
2 Les pointeurs
Notion d’un pointeur
Les opérateurs de base &, *
Déclaration d’un pointeur
Initialisation d’un pointeur
Accéder à une variable pointée
Laila AMIR
Introduction Intérêt des pointeurs
Les pointeurs Adressage de variables
Laila AMIR
Introduction Intérêt des pointeurs
Les pointeurs Adressage de variables
Laila AMIR
Introduction Intérêt des pointeurs
Les pointeurs Adressage de variables
Laila AMIR
Introduction Intérêt des pointeurs
Les pointeurs Adressage de variables
Adressage direct
Adressage direct
Accès au contenu d’une variable par le nom de la variable.
Laila AMIR
Introduction Intérêt des pointeurs
Les pointeurs Adressage de variables
Adressage indirect
Adressage indirect
Accès au contenu d’une variable, en passant par un pointeur qui contient
l’adresse de la variable.
Laila AMIR
Notion d’un pointeur
Les opérateurs de base &, *
Introduction
Déclaration d’un pointeur
Les pointeurs
Initialisation d’un pointeur
Accéder à une variable pointée
Outline
1 Introduction
Intérêt des pointeurs
Adressage de variables
2 Les pointeurs
Notion d’un pointeur
Les opérateurs de base &, *
Déclaration d’un pointeur
Initialisation d’un pointeur
Accéder à une variable pointée
Laila AMIR
Notion d’un pointeur
Les opérateurs de base &, *
Introduction
Déclaration d’un pointeur
Les pointeurs
Initialisation d’un pointeur
Accéder à une variable pointée
Un pointeur est une variable spéciale qui peut contenir l’adresse d’une
autre variable.
Laila AMIR
Notion d’un pointeur
Les opérateurs de base &, *
Introduction
Déclaration d’un pointeur
Les pointeurs
Initialisation d’un pointeur
Accéder à une variable pointée
Remarque :
Laila AMIR
Notion d’un pointeur
Les opérateurs de base &, *
Introduction
Déclaration d’un pointeur
Les pointeurs
Initialisation d’un pointeur
Accéder à une variable pointée
Laila AMIR
Notion d’un pointeur
Les opérateurs de base &, *
Introduction
Déclaration d’un pointeur
Les pointeurs
Initialisation d’un pointeur
Accéder à une variable pointée
L’opérateurs : &, *
L’opérateur ’adresse de’ : &
& NomVariable
fournit l’adresse de la variable NomVariable
On a déjà utilisé l’opérateur & dans la fonction scanf, pour désigner
l’adresse de la variable dans laquelle on veut stocker une valeur.
Exemple :
int N;
printf(”Entrez un nombre entier : ”);
scanf(”%d”, &N);
L’opérateur ’contenu de’ : *
* NomPointeur
désigne le contenu de l’adresse référencée par le pointeur NomPointeur
Laila AMIR
Notion d’un pointeur
Les opérateurs de base &, *
Introduction
Déclaration d’un pointeur
Les pointeurs
Initialisation d’un pointeur
Accéder à une variable pointée
Représentation schématique
Laila AMIR
Notion d’un pointeur
Les opérateurs de base &, *
Introduction
Déclaration d’un pointeur
Les pointeurs
Initialisation d’un pointeur
Accéder à une variable pointée
Exemple 2
Laila AMIR
Notion d’un pointeur
Les opérateurs de base &, *
Introduction
Déclaration d’un pointeur
Les pointeurs
Initialisation d’un pointeur
Accéder à une variable pointée
Exemple 2 (suite)
=>
Laila AMIR
Notion d’un pointeur
Les opérateurs de base &, *
Introduction
Déclaration d’un pointeur
Les pointeurs
Initialisation d’un pointeur
Accéder à une variable pointée
Type * NomPointeur;
déclare un pointeur NomPointeur qui peut recevoir des adresses de
variables du type Type.
NomPointeur = &nom-de-la-variable-pointee;
Exemple :
int *p1;
int a = 2;
p1 = &a;
Laila AMIR
Notion d’un pointeur
Les opérateurs de base &, *
Introduction
Déclaration d’un pointeur
Les pointeurs
Initialisation d’un pointeur
Accéder à une variable pointée
Exemple :
int *p1;
int a = 2;
p1 = &a;
*p1 = 10;
Après ces instructions, le contenu de la variable a sera 10.
Laila AMIR
Notion d’un pointeur
Les opérateurs de base &, *
Introduction
Déclaration d’un pointeur
Les pointeurs
Initialisation d’un pointeur
Accéder à une variable pointée
Exemple complet
#include <stdio.h>
int main(){
int a, b, c;
int *x, *y;
a = 98; Exécution :
x = &a;
c = *x + 5; La variable b vaut 108
y = &b; La variable c vaut 103
*y = a + 10;
printf(”La variable b vaut :%d ”, b);
printf(”La variable c vaut :%d”, c);
return 0;
}
Laila AMIR
Notion d’un pointeur
Les opérateurs de base &, *
Introduction
Déclaration d’un pointeur
Les pointeurs
Initialisation d’un pointeur
Accéder à une variable pointée
Explications :
Dans ce programme, on déclare 3 variables a, b et c. On déclare ensuite 2
pointeurs vers des entiers x et y. a est initialisé à 98.
x=&a; permet de mettre dans le un pointeur x l’adresse de a.
*x est la variable pointée par x. a vaut donc 98 après évaluation.
c=*x+5; permet donc de transférer 98+5 donc 103 dans la variable c.
y=&b permet de mettre dans la variable y l’adresse de la variable b. y
est désormais un pointeur vers b.
a+10 vaut 98+10 donc 108.
*y=a+10; permet de transférer dans la variable pointée par y la
valeur de a+10, c’est-à-dire 108. On stocke donc 108 dans b, de
manière indirecte via le pointeur y.
on affiche ensuite les valeurs de b et c c-à-d respect. 108 et 103.
Laila AMIR