logo

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.

Adresse-Operator-i-C

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






smide kast i java

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

>

fizzbuzz java

>

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:

  1. Registrer variabler
  2. Bitfelter
  3. Bogstaver
  4. 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:

  1. At sende pointere som funktionsargumenter
  2. Pointer Aritmetik
  3. Implementering af datastrukturer