logo

Adres Operator & in C

De Adresoperator in C is een speciale unaire operator die het adres van een variabele retourneert. Het wordt aangeduid als de Ampersand-symbool ( & ) . Deze operator retourneert een geheel getal, namelijk de adres van zijn operand in het geheugen. We kunnen de adresoperator (&) gebruiken met elk soort variabelen, array, strings, functies en zelfs pointers.

Syntaxis

De adresoperator wordt over het algemeen gebruikt als voorvoegsel voor de operand:



vergelijk met strings in Java
  &   operand>

waar operand kan een variabele, array, functie, aanwijzer, enz. zijn.

Adres-Operator-in-C

Adresoperator in C

Voorbeelden van adresoperatoren

Voorbeeld 1:

Eenvoudig C-voorbeeld om te demonstreren hoe u de adresoperator in ons programma kunt gebruiken.



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;> }>

>

>

Uitvoer

The address of x is 0x7fffe8f5591c>

Uitleg

Een variabele X werd gedefinieerd en geïnitialiseerd met de waarde 100 in het bovenstaande programma. We hebben het adres van deze variabele x opgehaald door de adresoperator (&) als voorvoegsel te gebruiken en hebben dit afgedrukt met de functie printf().

min. max

Opmerking: De %p-formaatspecificatie om het adres in hexadecimale vorm af te drukken.

Over het algemeen wordt de door de adresoperator geretourneerde waarde opgeslagen in de wijzer variabele en vervolgens wordt de verwijzing van de aanwijzer verwijderd om de waarde op te halen die in dat adres is opgeslagen.

Voorbeeld 2:

Een pointer gebruiken om het door de adresoperator geretourneerde adres op te slaan en er vervolgens de verwijzingen naar te derefereren.

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;> }>

>

>

e-r-modeldiagram
Uitvoer

Value of x: 1>

Voorbeeld 3:

Sommige standaardfuncties zoals scanf() vereisen ook het adres van de variabele. In deze gevallen gebruiken we de adresoperator.

C

voorbestelling doorlopen




// 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;> }>

>

>

Uitvoer

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

Adresoperator Incompatibele entiteiten in C

Er zijn enkele entiteiten in C waarvoor we de adresoperator niet kunnen gebruiken, dat wil zeggen dat we het adres van die entiteiten in C niet kunnen achterhalen. Enkele daarvan zijn:

  1. Variabelen registreren
  2. Bitvelden
  3. Letterlijk
  4. Uitdrukkingen

Toepassingen van Adresoperator (&):

De adresoperator (&) wordt veel gebruikt in C-programma's om de adressen van verschillende entiteiten op te halen. Enkele van de belangrijkste en meest voorkomende toepassingen zijn:

  1. Aanwijzingen doorgeven als functieargumenten
  2. Aanwijzer rekenkunde
  3. Implementeren van datastructuren