logo

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

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:

  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