Adresa operátora & v C
The Operátor adresy v C je speciální unární operátor, který vrací adresu proměnné. Označuje se jako Symbol ampersandu ( & ) . Tento operátor vrací celočíselnou hodnotu, která je adresu jeho operandu v paměti. Operátor adresy (&) můžeme použít s libovolnými proměnnými, poli, řetězci, funkcemi a dokonce i ukazateli.
Syntax
Operátor adresy se obecně používá jako předpona jeho operandu:
& operand
kde operand může být proměnná, pole, funkce, ukazatel atd.
Operátor adresy v C
Příklady adresových operátorů
Příklad 1:
Jednoduchý příklad C, který demonstruje, jak používat operátor adresy v našem programu.
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ýstup
The address of x is 0x7fffe8f5591c
Vysvětlení
Proměnná X byl definován a inicializován s hodnotou 100 v programu výše. Adresu této proměnné x jsme získali pomocí operátoru adresy (&) jako předponu a vytiskli ji pomocí funkce printf().
Poznámka: Specifikátor formátu %p pro tisk adresy v hexadecimálním tvaru.
Obecně je hodnota vrácená operátorem adresy uložena v ukazatel a poté je ukazatel dereferencován, aby se získala hodnota uložená v této adrese.
Příklad 2:
Použití ukazatele k uložení adresy vrácené operátorem adresy a následné dereferencování.
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;> }> |
Výstup
Value of x: 1
Příklad 3:
Některé standardní funkce jako scanf() také vyžadují adresu proměnné. V těchto případech používáme 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ýstup
Enter any number: 10 The entered number is: 10
Entity neslučitelné s operátorem v C
V C jsou některé entity, pro které nemůžeme použít operátor adresy, tj. nemůžeme získat adresu těchto entit v C. Některé z nich jsou:
- Registrovat proměnné
- Bitová pole
- Doslovy
- Výrazy
Aplikace adresního operátora (&):
Operátor adresy (&) je široce používán v programech C k získání adres různých entit. Některé z hlavních a nejběžnějších aplikací jsou:
- Předávání ukazatelů jako argumentů funkcí
- Aritmetika ukazatele
- Implementace datových struktur