C – Pointeurs

Publicités

Les pointeurs en C sont faciles et amusants à apprendre. Certaines tâches de programmation C sont exécutées plus facilement avec des pointeurs, et dautres tâches, telles que lallocation de mémoire dynamique, ne peuvent pas être effectuées sans lutilisation de pointeurs. Il devient donc nécessaire dapprendre les pointeurs pour devenir un programmeur C parfait. Commençons par les apprendre par étapes simples et faciles.

Comme vous le savez, chaque variable est un emplacement de mémoire et chaque emplacement de mémoire a son adresse définie, accessible en utilisant une esperluette (&), qui désigne une adresse en mémoire. Prenons lexemple suivant, qui imprime ladresse des variables définies –

Lorsque le code ci-dessus est compilé et exécuté, il produit ce qui suit result –

Address of var1 variable: bff5a400Address of var2 variable: bff5a3f6

Que sont les pointeurs?

Un pointeur est une variable dont la valeur est ladresse dune autre variable, cest-à-dire ladresse directe de lemplacement mémoire. Comme toute variable ou constante, vous devez déclarer un pointeur avant de lutiliser pour stocker une adresse de variable. La forme générale dune déclaration de variable de pointeur est –

type *var-name;

Ici, le type est le type de base du pointeur; il doit sagir dun type de données C valide et var-name est le nom de la variable de pointeur. Lastérisque * utilisé pour déclarer un pointeur est le même astérisque que celui utilisé pour la multiplication. Cependant, dans cette instruction, lastérisque est utilisé pour désigner une variable comme pointeur. Jetez un œil à certaines des déclarations de pointeurs valides –

int *ip; /* pointer to an integer */double *dp; /* pointer to a double */float *fp; /* pointer to a float */char *ch /* pointer to a character */

Le type de données réel de la valeur de tous les pointeurs, quil soit entier, flottant, caractère ou autre , est le même, un long nombre hexadécimal qui représente une adresse mémoire. La seule différence entre les pointeurs de différents types de données est le type de données de la variable ou de la constante vers laquelle pointe le pointeur.

Comment utiliser les pointeurs?

Il y a quelques opérations importantes, ce que nous ferons très fréquemment à laide de pointeurs. (a) Nous définissons une variable pointeur, (b) affectons ladresse dune variable à un pointeur et (c) accédons enfin à la valeur à ladresse disponible dans la variable pointeur. Cela se fait en utilisant lopérateur unaire * qui renvoie la valeur de la variable située à ladresse spécifiée par son opérande. Lexemple suivant utilise ces opérations –

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant –

Address of var variable: bffd8b3cAddress stored in ip variable: bffd8b3cValue of *ip variable: 20

Pointeurs NULL

Il est toujours recommandé dattribuer une valeur NULL à une variable de pointeur au cas où vous nauriez pas dadresse exacte à attribuer. Cela se fait au moment de la déclaration des variables. Un pointeur qui est assigné NULL est appelé un pointeur nul.

Le pointeur NULL est une constante avec une valeur de zéro définie dans plusieurs bibliothèques standard. Considérez le programme suivant –

#include <stdio.h>int main () { int *ptr = NULL; printf("The value of ptr is : %x\n", ptr ); return 0;}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant –

The value of ptr is 0

Dans la plupart des systèmes dexploitation, les programmes ne sont pas autorisés à accéder à la mémoire à ladresse 0 car cette mémoire est réservée par le système dexploitation. Cependant, ladresse mémoire 0 a une signification particulière; il signale que le pointeur nest pas destiné à pointer vers un emplacement mémoire accessible. Mais par convention, si un pointeur contient la valeur nulle (zéro), il est supposé ne pointer vers rien.

Pour rechercher un pointeur nul, vous pouvez utiliser une instruction « if » comme suit –

if(ptr) /* succeeds if p is not null */if(!ptr) /* succeeds if p is null */

Pointeurs en détail

Les pointeurs ont des concepts nombreux mais simples et ils sont très importants pour la programmation en C. Les concepts de pointeurs importants suivants doivent être clairs pour tout programmeur C –

Sr.No. Concept & Description
1 Arithmétique des pointeurs

Il existe quatre opérateurs arithmétiques qui peuvent être utilisés dans les pointeurs: ++, -, +, –

2 Tableau de pointeurs

Vous pouvez définir des tableaux pour contenir un certain nombre de pointeurs.

3 Pointeur vers pointeur

C vous permet davoir un pointeur sur un pointeur et ainsi de suite.

4 Passer des pointeurs vers des fonctions en C

Passer un argument par référence ou par adresse permet de modifier largument passé dans la fonction appelante par la fonction appelée.

5 Retour pointeur des fonctions en C

C permet à une fonction de renvoyer un pointeur vers la variable locale, la variable statique et également la mémoire allouée dynamiquement.

Annonces

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *