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
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;> }> |
program python pentru căutare binară
>
>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:
- Înregistrați variabile
- Câmpuri de biți
- Literale
- 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:
- Transmiterea de pointeri ca argumente de funcție
- Aritmetica indicatorului
- Implementarea structurilor de date