logo

Opérateur d'adresse & en C

Le Opérateur d'adresse en C est un opérateur unaire spécial qui renvoie l'adresse d'une variable. Il est noté comme le Symbole esperluette ( & ) . Cet opérateur renvoie une valeur entière qui est la adresse de son opérande dans la mémoire. Nous pouvons utiliser l'opérateur d'adresse (&) avec tout type de variables, tableaux, chaînes, fonctions et même des pointeurs.

Syntaxe

L'opérateur d'adresse est généralement utilisé comme préfixe à son opérande :



  &   operand>

opérande peut être une variable, un tableau, une fonction, un pointeur, etc.

Opérateur d'adresse en C

Opérateur d'adresse en C

Exemples d'opérateurs d'adresse

Exemple 1:

Exemple C simple pour montrer comment utiliser l'opérateur d'adresse dans notre programme.



C






// C program to illustrate the use of address operator> #include> > int> main()> {> >// declaring a variable> >int> x = 100;> > >// printing the address of the variable> >printf>(>'The address of x is %p'>, &x);> >return> 0;> }>

>

>

Sortir

The address of x is 0x7fffe8f5591c>

Explication

Une variable X a été défini et initialisé avec la valeur 100 dans le programme ci-dessus. Nous avons récupéré l'adresse de cette variable x en utilisant l'opérateur d'adresse (&) comme préfixe et l'avons imprimée à l'aide de la fonction printf().

Note: Le spécificateur de format %p pour imprimer l'adresse sous forme hexadécimale.

Généralement, la valeur renvoyée par l'opérateur d'adresse est stockée dans le aiguille variable, puis le pointeur est déréférencé pour obtenir la valeur stockée dans cette adresse.

Exemple 2 :

Utiliser un pointeur pour stocker l'adresse renvoyée par l'opérateur d'adresse, puis la déréférencer.

parent jquery

C




// C program to illustrate the use of address operator with> // pointer> #include> > int> main()> {> >// integer variable> >int> x = 1;> >// integer pointer> >int>* ptrX;> >// pointer initialization with the address of x> >ptrX = &x;> > >// accessing value of x usin pointer> >printf>(>'Value of x: %d '>, *ptrX);> > >return> 0;> }>

>

>

Sortir

Value of x: 1>

Exemple 3 :

Certaines fonctions standards comme scanf() nécessitent également l'adresse de la variable. Dans ces cas, nous utilisons l’opérateur d’adresse.

C




// C Program to illustrate the use of address operator with> // scanf()> #include> > int> main()> {> >// defining variable> >int> number;> > >printf>(>'Enter any number: '>);> >// using adress operator & in scanf() to get the value> >// entered by the user in the console> >scanf>(>'%d'>, &number);> > >// priting the entered number> >printf>(>'The entered number is: %d'>, number);> >return> 0;> }>

>

>

Sortir

Enter any number: 10 The entered number is: 10>

Adresser les entités incompatibles avec l'opérateur en C

Il existe certaines entités en C pour lesquelles nous ne pouvons pas utiliser l'opérateur d'adresse, c'est-à-dire que nous ne pouvons pas obtenir l'adresse de ces entités en C. Certaines d'entre elles sont :

  1. Variables d'enregistrement
  2. Champs de bits
  3. Littéraux
  4. Expressions

Applications de l'opérateur d'adresse (&) :

L'opérateur d'adresse (&) est largement utilisé dans les programmes C pour obtenir les adresses de différentes entités. Certaines des applications majeures et les plus courantes sont :

  1. Passer des pointeurs comme arguments de fonction
  2. Arithmétique du pointeur
  3. Implémentation de structures de données