Adressoperatör & i C
De Adressoperatör i C är en speciell unär operator som returnerar adressen till en variabel. Det betecknas som Ampersand-symbol ( & ) . Denna operator returnerar ett heltalsvärde som är adress till dess operand i minnet. Vi kan använda adressoperatorn (&) med alla typer av variabler, matriser, strängar, funktioner och till och med pekare.
Syntax
Adressoperatorn används vanligtvis som ett prefix till sin operand:
& operand
var operand kan vara en variabel, array, funktion, pekare, etc.
Adressoperatör i C
Exempel på adressoperatörer
Exempel 1:
Enkelt C-exempel för att visa hur man använder adressoperatören i vårt program.
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;> }> |
Produktion
The address of x is 0x7fffe8f5591c
Förklaring
En variabel x definierades och initierades med värdet 100 i programmet ovan. Vi hämtade adressen till denna variabel x genom att använda adressoperatorn (&) som prefix och skrev ut den med funktionen printf().
Notera: %p-formatspecifikationen för att skriva ut adressen i hexadecimal form.
I allmänhet lagras värdet som returneras av adressoperatören i pekare variabel och sedan avreferenseras pekaren för att få värdet lagrat i den adressen.
Exempel 2:
Använda en pekare för att lagra adressen som returneras av adressoperatören och sedan därhänvisa.
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;> }> |
Produktion
Value of x: 1
Exempel 3:
Vissa standardfunktioner som scanf() kräver också adressen till variabeln. I dessa fall använder vi adressoperatören.
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;> }> |
Produktion
Enter any number: 10 The entered number is: 10
Adressera operatörsinkompatibla enheter i C
Det finns vissa enheter i C för vilka vi inte kan använda adressoperatören, dvs. vi kan inte få adressen till dessa enheter i C. Några av dem är:
- Registrera variabler
- Bitfält
- Bokstäver
- Uttryck
Applikationer av adressoperatör (&):
Adressoperatören (&) används ofta i C-program för att få adresser till olika enheter. Några av de stora och vanligaste applikationerna är:
- Att skicka pekare som funktionsargument
- Pekararitmetik
- Implementering av datastrukturer