Adresseoperatør & i C
Det Adresseoperatør i C er en speciel unær operator, der returnerer adressen på en variabel. Det er betegnet som A-tegn ( & ) . Denne operator returnerer en heltalsværdi, som er adressen på dens operand i hukommelsen. Vi kan bruge adresseoperatoren (&) med enhver form for variabler, array, strenge, funktioner og endda pointere.
Syntaks
Adresseoperatøren bruges generelt som et præfiks til dens operand:
& operand
hvor operand kan være en variabel, matrix, funktion, pointer osv.
Adresseoperatør i C
Eksempler på adresseoperatører
Eksempel 1:
Simpelt C-eksempel for at demonstrere, hvordan man bruger adresseoperatøren i vores 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
Forklaring
En variabel x blev defineret og initialiseret med værdien 100 i programmet ovenfor. Vi hentede adressen på denne variabel x ved at bruge adresseoperatoren (&) som præfiks og udskrev den ved hjælp af printf()-funktionen.
Bemærk: %p-formatspecifikationen til at udskrive adressen i hexadecimal form.
Generelt er den værdi, der returneres af adresseoperatøren, gemt i pointer variabel og derefter dereferences pointeren for at få værdien gemt i den adresse.
Eksempel 2:
Brug af en markør til at gemme adressen returneret af adresseoperatøren og derefter dereferencere den.
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
Eksempel 3:
Nogle standardfunktioner som scanf() kræver også adressen på variablen. I disse tilfælde bruger vi adresseoperatø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
Adresser operatørinkompatible enheder i C
Der er nogle enheder i C, som vi ikke kan bruge adresseoperatøren til, dvs. vi kan ikke få adressen på disse enheder i C. Nogle af dem er:
- Registrer variabler
- Bitfelter
- Bogstaver
- Udtryk
Applikationer fra adresseoperatør (&):
Adresseoperatøren (&) er meget brugt i C-programmer for at få adresserne på forskellige enheder. Nogle af de vigtigste og mest almindelige applikationer er:
- At sende pointere som funktionsargumenter
- Pointer Aritmetik
- Implementering af datastrukturer