Pointeurs dans la programmation C: Qu’est-ce que le pointeur, les types et les exemples
Qu’est-ce que le pointeur en C?
Le pointeur en C, est une variable qui stocke l’adresse d’une autre variable. Un pointeur peut également être utilisé pour faire référence à une autre fonction de pointeur. Un pointeur peut être incrémenté / décrémenté, c’est-à-dire pour pointer vers l’emplacement de mémoire suivant / précédent. Le but du pointeur est d’économiser de l’espace mémoire et d’accélérer le temps d’exécution.
Comment utiliser les pointeurs en C
Si nous déclarons une variable v de type int, v stockera en fait une valeur.
v est désormais égal à zéro.
Cependant, chaque variable, à part value, a aussi son adresse (ou, simplement, où elle se trouve dans la mémoire). L’adresse peut être récupérée en plaçant une esperluette (&) avant le nom de la variable.
Si vous imprimez l’adresse d’une variable à l’écran, elle aura l’air comme un nombre totalement aléatoire (de plus, il peut être différent d’une exécution à l’autre).
Essayons ceci en pratique avec un pointeur en C exemple
Le résultat de ce programme est -480613588.
Maintenant, qu’est-ce qu’un pointeur? Au lieu de stocker une valeur, un pointeur y stockera l’adresse d’une variable.
Variable de pointeur
Int * y = & v;
VARIABLE |
POINTEUR |
Une valeur stockée dans une adresse de stockage / mémoire nommée |
Une variable qui pointe vers l’adresse de stockage / mémoire d’une autre variable |
Déclaration d’un pointeur
Comme les variables, les pointeurs dans le programme C mming doivent être déclarés avant de pouvoir être utilisés dans votre programme. Les pointeurs peuvent être nommés comme vous le souhaitez tant qu’ils obéissent aux règles de dénomination de C. Une déclaration de pointeur a la forme suivante.
data_type * pointer_variable_name;
Ici,
- data_type est le type de base du pointeur des types de variables de C et indique le type de la variable vers laquelle pointe le pointeur.
- L’astérisque (*: le même astérisque utilisé pour la multiplication) qui est un opérateur d’indirection, déclare un pointeur.
Voyons quelques déclarations de pointeur valides dans ce tutoriel sur les pointeurs C:
Initialiser un pointeur
Après avoir déclaré un pointeur, nous l’initialisons comme des variables standard avec une adresse de variable. Si les pointeurs en programmation C ne sont pas non initialisés et utilisés dans le programme, les résultats sont imprévisibles et potentiellement désastreux.
Pour obtenir l’adresse d’une variable, nous utilisons l’opérateur perluète (&), placé avant le nom d’une variable dont nous avons besoin de l’adresse. L’initialisation du pointeur se fait avec la syntaxe suivante.
Syntaxe du pointeur
pointer = &variable;
Un programme simple pour l’illustration du pointeur est donné ci-dessous:
Sortie:
Address stored in a variable p is:60ff08Value stored in a variable p is:10
Opérateur | Signification |
* | A 2 fins
|
& | Sert uniquement à 1 objectif
|
Types de pointeurs en C
Voici les différents types de pointeurs en C:
Pointeur nul
Nous pouvons créer un pointeur nul en attribuant une valeur nulle lors de la déclaration du pointeur. Cette méthode est utile lorsque aucune adresse n’est attribuée au pointeur. Un pointeur nul contient toujours la valeur 0.
Le programme suivant illustre l’utilisation d’un pointeur nul:
#include <stdio.h>int main(){int *p = NULL; //null pointerprintf("The value inside variable p is:\n%x”,p);return 0;}
Résultat:
The value inside variable p is:0
Pointeur de vide
En programmation C, un pointeur de vide est également appelé comme pointeur générique. Il n’a aucun type de données standard. Un pointeur void est créé à l’aide du mot clé void. Il peut être utilisé pour stocker une adresse de n’importe quelle variable.
Le programme suivant illustre l’utilisation d’un pointeur void:
#include <stdio.h>int main(){void *p = NULL; //void pointerprintf("The size of pointer is:%d\n",sizeof(p));return 0;}
Sortie:
The size of pointer is:4
Pointeur sauvage
Un pointeur est dit être un pointeur sauvage s’il n’est initialisé à rien. Ces types de pointeurs C ne sont pas efficaces car ils peuvent pointer vers un emplacement mémoire inconnu qui peut causer des problèmes dans notre programme et cela peut entraîner un plantage du programme. Il faut toujours être prudent lorsque l’on travaille avec des pointeurs sauvages.
Le programme suivant illustre l’utilisation du pointeur sauvage:
#include <stdio.h>int main(){int *p; //wild pointerprintf("\n%d",*p);return