logo

Pointeur de déréférencement C

Comme nous le savons déjà 'qu'est-ce qu'un pointeur' , un pointeur est une variable qui stocke l'adresse d'une autre variable. L'opérateur de déréférencement est également appelé opérateur d'indirection, représenté par (*). Lorsque l'opérateur d'indirection (*) est utilisé avec la variable de pointeur, il est alors appelé déréférencer un pointeur. Lorsque nous déréférencerons un pointeur, alors la valeur de la variable pointée par ce pointeur sera renvoyée.

Pourquoi utilisons-nous un pointeur de déréférencement ?

Le déréférencement d'un pointeur est utilisé pour les raisons suivantes :

tailles de texte en latex
  • Il peut être utilisé pour accéder ou manipuler les données stockées à l’emplacement mémoire pointé par le pointeur.
  • Toute opération appliquée au pointeur déréférencé affectera directement la valeur de la variable vers laquelle il pointe.

Observons les étapes suivantes pour déréférencer un pointeur.

  • Tout d’abord, nous déclarons la variable entière vers laquelle pointe le pointeur.
 int x =9; 
  • Maintenant, nous déclarons la variable de pointeur entier.
 int *ptr; 
  • Après la déclaration d'une variable pointeur entière, nous stockons l'adresse de la variable 'x' dans la variable pointeur 'ptr'.
 ptr=&x; 
  • Nous pouvons modifier la valeur de la variable « x » en déréférençant un pointeur « ptr » comme indiqué ci-dessous :
 *ptr =8; 

La ligne ci-dessus modifie la valeur de la variable « x » de 9 à 8 car « ptr » pointe vers l'emplacement « x » et le déréférencement de « ptr », c'est-à-dire que *ptr=8 mettra à jour la valeur de x.

Combinons toutes les étapes ci-dessus :

 #include int main() { int x=9; int *ptr; ptr=&x; *ptr=8; printf('value of x is : %d', x); return 0;} 

Sortir

Pointeur de déréférencement C

Prenons un autre exemple.

 #include int main() { int x=4; int y; int *ptr; ptr=&x; y=*ptr; *ptr=5; printf('The value of x is : %d',x); printf('
 The value of y is : %d',y); return 0; } 

Dans le code ci-dessus :

  • Nous déclarons deux variables « x » et « y » où « x » contient une valeur « 4 ».
  • Nous déclarons une variable pointeur 'ptr'.
  • Après la déclaration d'une variable pointeur, nous attribuons l'adresse de la variable 'x' au pointeur 'ptr'.
  • Comme nous savons que 'ptr' contient l'adresse de la variable 'x', donc '*ptr' est identique à 'x'.
  • Nous attribuons la valeur de « x » à « y » à l'aide de la variable « ptr », c'est-à-dire y=* ptr au lieu d'utiliser la variable 'x'.

Remarque : selon nous, si nous modifions la valeur de « x », alors la valeur de « y » sera également modifiée car le pointeur « ptr » contient l'adresse de la variable « x ». Mais cela ne se produit pas, car « y » stocke la copie locale de la valeur « 5 ».

Sortir

Pointeur de déréférencement C

Considérons un autre scénario.

 #include int main() { int a=90; int *ptr1,*ptr2; ptr1=&a; ptr2=&a; *ptr1=7; *ptr2=6; printf('The value of a is : %d',a); return 0; } 

Dans le code ci-dessus :

chaîne java avec format
  • Tout d’abord, nous déclarons une variable « a ».
  • Ensuite, nous déclarons deux pointeurs, c'est-à-dire ptr1 et ptr2.
  • Les deux pointeurs contiennent l’adresse d’une variable.
  • Nous attribuons la valeur « 7 » au *ptr1 et « 6 » au *ptr2. La valeur finale de « a » serait « 6 ».

Remarque : Si plusieurs pointeurs pointent vers le même emplacement, la modification apportée par un pointeur sera la même que celle d'un autre pointeur.

Sortir

Pointeur de déréférencement C