The Operator adresu w C to specjalny operator jednoargumentowy, który zwraca adres zmiennej. Jest oznaczony jako Symbol ampersanda ( & ) . Operator ten zwraca wartość całkowitą, czyli adres jego operandu w pamięci. Operatora adresu (&) możemy używać z dowolnymi zmiennymi, tablicami, ciągami znaków, funkcjami, a nawet wskaźnikami.
Składnia
Operator adresu jest zwykle używany jako przedrostek jego operandu:
& operand>
Gdzie operand może być zmienną, tablicą, funkcją, wskaźnikiem itp.

Operator adresu w C
Przykłady operatorów adresów
Przykład 1:
Prosty przykład w języku C ilustrujący sposób użycia operatora adresu w naszym programie.
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;> }> |
>
>Wyjście
The address of x is 0x7fffe8f5591c>
Wyjaśnienie
Zmienna X został zdefiniowany i zainicjowany wartością 100 w powyższym programie. Pobraliśmy adres tej zmiennej x, używając operatora adresu (&) jako przedrostka i wydrukowaliśmy go za pomocą funkcji printf().
Notatka: Specyfikator formatu %p służący do drukowania adresu w postaci szesnastkowej.
Ogólnie rzecz biorąc, wartość zwrócona przez operator adresu jest przechowywana w pliku wskaźnik zmienna, a następnie wskaźnik jest dereferowany, aby uzyskać wartość przechowywaną pod tym adresem.
Przykład 2:
Użycie wskaźnika do przechowywania adresu zwróconego przez operator adresu, a następnie wyłuskanie go.
sortowanie tablicowe Java
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;> }> |
>
>Wyjście
Value of x: 1>
Przykład 3:
Niektóre standardowe funkcje, takie jak scanf(), również wymagają adresu zmiennej. W takich przypadkach używamy operatora adresu.
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;> }> |
>
>
Wyjście
Enter any number: 10 The entered number is: 10>
Operator adresu Niekompatybilne jednostki w C
Istnieją pewne encje w C, dla których nie możemy użyć operatora adresu, tj. nie możemy uzyskać adresu tych encji w C. Oto niektóre z nich:
- Zarejestruj zmienne
- Pola bitowe
- Literały
- Wyrażenia
Zastosowania operatora adresu (&):
Operator adresu (&) jest szeroko stosowany w programach C w celu uzyskania adresów różnych jednostek. Niektóre z głównych i najczęstszych zastosowań to:
- Przekazywanie wskaźników jako argumentów funkcji
- Arytmetyka wskaźników
- Implementowanie struktur danych