Introduction aux pointeurs en C

En C ou dans d'autres langages de programmation, nous avons un concept de variable. Ces variables sont utilisées pour y contenir des valeurs. On peut utiliser ces variables lors de la programmation. Cependant, peu de tâches ne nécessitent pas de variables mais nécessitent l'adresse de ces variables. L'adresse des variables signifie l'emplacement de mémoire réel où ces variables existent. Dans cette rubrique, nous allons en apprendre davantage sur les pointeurs en C. Nous pouvons définir le pointeur comme un type de variable qui contient l'adresse de toute autre variable qui pourrait contenir une certaine valeur

Utilisations des pointeurs dans les langages de programmation et C

Maintenant, discutons de ce dans lequel C avons-nous réellement besoin d'un pointeur. Il existe de nombreuses tâches telles que l'allocation dynamique de mémoire qui nécessite des pointeurs lors de la programmation en C.Utiliser des pointeurs, cette tâche peut être effectuée facilement

Différentes façons d'accéder à l'adresse variable en C

Essayons de savoir quelles sont les différentes manières d'imprimer l'adresse d'une variable en C.

Il y a deux façons par lesquelles nous pouvons réellement imprimer l'adresse d'une variable. Ces deux méthodes sont:

  1. En utilisant la méthode esperluette (&)
  2. En utilisant le pointeur

Examinons chaque méthode avec un exemple

1. En utilisant la méthode esperluette (&)

Dans cette méthode, nous utiliserons le concept de l'esperluette pour imprimer l'adresse d'une variable

Voyons cela avec un exemple

#include
int main () (
double varNumValue= 10.2;
char varTextValue(10) = “abc”;
printf("The address of variable varNumValue: %x\n", &varNumValue );
printf("varTextValue variable address is : %x\n", &varTextValue );
return 0;
)

Maintenant, copiez l'extrait de code ci-dessus et exécutez-le

Il affichera la sortie suivante:

The address of variable varNumValue: a0665a48
The address of variable varTextValue is : a0665a3e

Bien que l'on puisse voir la valeur différente qui est assignée au hasard lors de l'exécution de l'exemple

L'exemple susmentionné n'est pas très utilisé, mais il vaut la peine de le savoir. Voyons maintenant l'autre concept dont nous discutons dans ce sujet.

2. En utilisant le pointeur

Il s'agit d'une approche moderne pour accéder à l'adresse d'une variable. Avant d'utiliser le pointeur, indiquez la syntaxe générale de la déclaration d'un pointeur

  • La syntaxe générale de déclaration d'un pointeur - Une syntaxe courante que nous utilisons pour déclarer une variable est:

data_type *variable

C'est une façon courante de déclarer n'importe quel pointeur en C, ici data_type représente le type de la variable dont l'adresse doit être stockée. * indique que la variable déclarée est un pointeur. une variable est simplement utilisée pour accéder à la valeur

Un exemple simple de ceci est:

double *var_text

Après avoir discuté du concept de syntaxe générale de déclaration d'un pointeur , faites-nous savoir comment utiliser un pointeur dans la programmation

Pour utiliser un pointeur en C, il faut essentiellement suivre les trois étapes suivantes:

  • Définition de la variable du pointeur
  • Affectation de l'adresse de la variable dont nous voulons conserver l'adresse dans la variable pointeur
  • Maintenant, une fois que nous avons une variable de pointeur avec l'adresse, nous pouvons à nouveau récupérer la valeur de la variable à partir de l'adresse stockée dans le pointeur. Cela pourrait être fait en utilisant * en C. * est simplement l'un des opérateurs unaires

Utilisons les étapes mentionnées ci-dessus avec un exemple, puis nous expliquerons cet exemple étape par étape

Exemple

#include
int main () (
int varNumValue = 10;
int *ipointervarNumValue;
ipointervarNumValue = &varNumValue;
printf("Address of the variable varNumValue is: %x\n", &varNumValue );
printf("Address stored in the variable ipointervarNumValue is: %x\n", ipointervarNumValue);
printf("Value of the variable *ipointervarNumValue is: %d\n", *ipointervarNumValue );
return 0;
)

Maintenant, copiez l'extrait de code ci-dessus et exécutez-le

Il affichera la sortie suivante:

Address of the variable varNumValue is: bf7b7f94
Address stored in the variable ipointervarNumValue is: bf7b7f94
Value of the variable *ipointervarNumValue is: 10

Maintenant, essayons de comprendre l'exemple ci-dessus

La ligne int varNumValue = 10; déclare simplement une variable de valeur 10

La deuxième ligne qui est à côté d'elle: int * ipointervarNumValue; est simplement déclaré pour stocker l'adresse de la variable

L'extrait de code suivant qui est: ipointervarNumValue = & varNumValue; est utilisé pour contenir l'adresse de la variable. Ici, nous utilisons le concept d'esperluette dont nous avons discuté plus tôt dans l'article

Maintenant, nous pouvons simplement obtenir la valeur et utiliser un pointeur dans notre extrait de code

Examinons maintenant différents types de pointeurs en C

Types de pointeur en C

Il existe différents types de pointeurs en C. Les types de pointeurs de base généralement utilisés sont:

  • Pointeur nul
  • Pointeur suspendu
  • Pointeurs génériques
  • Pointeur sauvage

Expliquons chacun

1. Pointeur nul: un pointeur nul est un type de pointeur qui ne pointe vers rien. Il pointe généralement vers l'adresse de base du segment. Si rien n'est attribué au pointeur, il a alors une valeur nulle

Il est généralement utilisé dans les fichiers d'en-tête comme stdio.h, alloc.h

2. Pointeur Dangler: ce type de pointeur peut être créé en supprimant l'objet sans modifier la valeur du pointeur

3. Pointeur générique: ce type de pointeur est déclaré à l'aide d'une variable de type void. Puisqu'il s'agit d'un type de données nul, il est appelé pointeur générique. Ce type de pointeur ne pointe vers aucune donnée

4. Wild Pointer: un pointeur qui n'a pas été initialisé est appelé pointeur Wild. Ce type de pointeur est initialisé lors de l'exécution lorsque l'on a besoin de l'utiliser. Ce type de pointeur est appelé pointeur sauvage

Conclusion

Les pointeurs en C sont utilisés pour pointer vers l'adresse de la variable. Ces variables sont utilisées pour l'allocation dynamique de mémoire en C. Ces variables sont déclarées avec un astérisque afin de montrer que la variable est un pointeur. Ceux-ci sont utilisés dans le fichier d'en-tête dans la programmation.

Articles recommandés

Ceci est un guide des pointeurs en C. Ici, nous discutons des différents types et utilisations des pointeurs en C avec des méthodes et des exemples. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Qu'est-ce qu'un langage de programmation?
  2. C vs C ++
  3. Modèles en programmation C
  4. Meilleurs compilateurs C
  5. Guide des pointeurs en C ++
  6. Pointeurs en C # avec des exemples