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
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:
- Î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