Operator adresu & w C

Operator adresu & w C

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

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.

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:

  1. Zarejestruj zmienne
  2. Pola bitowe
  3. Literały
  4. 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:

  1. Przekazywanie wskaźników jako argumentów funkcji
  2. Arytmetyka wskaźników
  3. Implementowanie struktur danych