Adresă operator și în C

Adresă operator și în C

The Adresă operator în C este un operator unar special care returnează adresa unei variabile. Este notat ca Simbol Ampersand ( & ) . Acest operator returnează o valoare întreagă care este adresa operandului său în memorie. Putem folosi operatorul de adresă (&) cu orice fel de variabile, matrice, șiruri de caractere, funcții și chiar pointeri.

Sintaxă

Operatorul de adresă este utilizat în general ca prefix la operandul său:

  &   operand 

Unde operand poate fi o variabilă, o matrice, o funcție, un pointer etc.

Adresă-Operator-în-C

Adresă operator în C

Exemple de operatori de adrese

Exemplul 1:

Exemplu simplu C pentru a demonstra cum să utilizați operatorul de adresă în programul nostru.

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

Ieșire

The address of x is 0x7fffe8f5591c 

Explicaţie

O variabilă X a fost definit și inițializat cu valoarea 100 în programul de mai sus. Am preluat adresa acestei variabile x utilizând operatorul de adresă (&) ca prefix și am imprimat-o folosind funcția printf().

Notă: Specificatorul de format %p pentru a tipări adresa în formă hexazecimală.

În general, valoarea returnată de operatorul de adresă este stocată în indicator variabilă și apoi indicatorul este dereferențiat pentru a obține valoarea stocată în acea adresă.

Exemplul 2:

Folosind un pointer pentru a stoca adresa returnată de operatorul de adresă și apoi dereferențând-o.

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

Ieșire

Value of x: 1 

Exemplul 3:

Unele funcții standard precum scanf() necesită, de asemenea, adresa variabilei. În aceste cazuri, folosim operatorul de adresă.

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

Ieșire

Enter any number: 10 The entered number is: 10 

Adresați-vă operatorului entități incompatibile în C

Există unele entități în C pentru care nu putem folosi operatorul de adresă, adică nu putem obține adresa acelor entități în C. Unele dintre ele sunt:

  1. Înregistrați variabile
  2. Câmpuri de biți
  3. Literale
  4. Expresii

Aplicații ale operatorului de adresă (&):

Operatorul de adresă (&) este utilizat pe scară largă în programele C pentru a obține adresele diferitelor entități. Unele dintre aplicațiile majore și cele mai comune sunt:

  1. Transmiterea de pointeri ca argumente de funcție
  2. Aritmetica indicatorului
  3. Implementarea structurilor de date