The Operátor adresy v C je špeciálny unárny operátor, ktorý vracia adresu premennej. Označuje sa ako Symbol ampersandu ( & ) . Tento operátor vráti celočíselnú hodnotu, ktorá je adresu jeho operandu v pamäti. Operátor adresy (&) môžeme použiť s akýmkoľvek druhom premenných, poľa, reťazcov, funkcií a dokonca aj ukazovateľov.
Syntax
Operátor adresy sa vo všeobecnosti používa ako predpona svojho operandu:
& operand>
kde operand môže byť premenná, pole, funkcia, ukazovateľ atď.

Operátor adresy v C
Príklady operátorov adries
Príklad 1:
Jednoduchý príklad C, ktorý demonštruje, ako používať operátor adresy v našom programe.
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;> }> |
>
>Výkon
The address of x is 0x7fffe8f5591c>
Vysvetlenie
Premenná X bol definovaný a inicializovaný s hodnotou 100 v programe vyššie. Získali sme adresu tejto premennej x pomocou operátora adresy (&) ako predponu a vytlačili sme ju pomocou funkcie printf().
Poznámka: Špecifikátor formátu %p na tlač adresy v hexadecimálnom tvare.
Vo všeobecnosti je hodnota vrátená operátorom adresy uložená v ukazovateľ premennej a potom sa dereferencuje ukazovateľ, aby sa získala hodnota uložená v tejto adrese.
Príklad 2:
Použitie ukazovateľa na uloženie adresy vrátenej operátorom adresy a jej následné dereferencovanie.
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;> }> |
applet applet
>
>Výkon
Value of x: 1>
Príklad 3:
Niektoré štandardné funkcie ako scanf() tiež vyžadujú adresu premennej. V týchto prípadoch používame operátora adresy.
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;> }> |
>
>
Výkon
Enter any number: 10 The entered number is: 10>
Adresujte nekompatibilné entity operátora v C
V C sú niektoré entity, pre ktoré nemôžeme použiť operátor adresy, t. j. nemôžeme získať adresu týchto entít v C. Niektoré z nich sú:
- Registrovať premenné
- Bitové polia
- Doslovy
- Výrazy
Aplikácie operátora adresy (&):
Operátor adresy (&) je široko používaný v programoch C na získanie adries rôznych entít. Niektoré z hlavných a najbežnejších aplikácií sú:
- Odovzdávanie ukazovateľov ako argumentov funkcií
- Aritmetika ukazovateľa
- Implementácia dátových štruktúr