Wskaźniki i referencje C ++

Wskaźniki i referencje C ++
W C ++ zarówno wskaźnik, jak i odniesienie to dwa potężne pojęcia. Za pomocą wskaźnika i zmiennej referencyjnej możemy łatwo uzyskać dostęp do naszych normalnych zmiennych. Teraz omawiamy szczegółowe informacje na temat pojęcia wskaźnika i odniesienia.

Wskaźnik

Wskaźnik to specjalny rodzaj zmiennej. Przechowuje adres innej zmiennej. Oznacza to, gdy jakakolwiek zmienna magazynuje się w pamięci, otrzymuje określony adres. Wskaźnik przechowuje ten adres tej konkretnej zmiennej.

Przykład programowania 1

#włączać
za pomocą przestrzeni nazw Std;
int main ()

int x = 15;
int *p; // deklarowanie wskaźnika
p = & x;
Cout<< &x << endl ; // address of x ;
Cout<< p << endl ; // pointing the address of x ;
Cout<< *p << endl ; // Dereferencing of a pointer;
powrót 0;

Wyjście

Wyjaśnienie
Tutaj deklarujemy zmienną całkowitą x i wewnętrzną x przypisujemy 15. Teraz zadeklarowaliśmy zmienną wskaźnika typu liczb całkowitych *P.

p = & x;

Tutaj, wewnątrz zmiennej wskaźnika p, przypisujemy adres x. Adres x jest całkowicie zależy od naszego systemu operacyjnego.

Jeśli drukujemy i x, pokazuje wyjście adresu zmiennej x.

Jeśli wydrukujemy zmienną P, otrzymuje również wyjście adresu zmiennej x.

Ale jeśli wydrukujemy *p, faktycznie to dereferencje do naszego wskaźnika. Oznacza to, że otrzymuje wyjście wartości zmiennej x.

Przykład programowania 2

#włączać
za pomocą przestrzeni nazw Std;
int main ()

float x = 15;
float *p; // deklarowanie wskaźnika
p = & x;
Cout<< &x << endl ; // address of x ;
Cout<< p << endl ; // pointing the address of x ;
Cout<< *p << endl ; // Dereferencing of a pointer;
powrót 0;

Wyjście

Wyjaśnienie
Jeśli weźmiemy zmienną typu zmiennoprzecinkowego x i przypisujemy pewną wartość 1.5, następnie deklarujemy wskaźnik do utrzymania adresu x, musimy wziąć wskaźnik pływaka.

Każdy wskaźnik zawiera adres zmiennej; Oba mają ten sam typ danych. W przeciwnym razie występuje błąd.

Wskaźnik arytmetyki

W C ++ za pomocą wskaźnika wykonaliśmy niektóre operacje arytmetyczne, takie jak przyrost, zmniejszenie, dodanie i odejmowanie.

Przykład programowania 3

#włączać
za pomocą przestrzeni nazw Std;
int main ()

int x = 15;
int *p = & x;
Cout<< p << endl ; // address of x ;
P ++; // Przyrost poinera
Cout<< p << endl ;
powrót 0;

Wyjście

Wskaźnik i tablica

Tablica zawsze bierze pamięć w sposób przylegający. Możemy wdrożyć tablicę za pomocą wskaźnika. Ponieważ po zwiększeniu wskaźnika zawsze wskazuje na następny blok od podstawowego adresu tablicy. Zarówno wskaźnik, jak i tablica mają ten sam typ danych.

Przykład programowania 4

#włączać
za pomocą przestrzeni nazw Std;
int main ()

int i;
int arr [] = 5, 10, 15; // deklarowanie tablicy;
int *p = arr; // inicjowanie wartości tablicy do wskaźnika;
Cout<< *arr << endl ;
dla (i = 0; i < 3 ; i++)

Cout<< *p << endl ;

powrót 0;

Wyjście

Wyjaśnienie
Możemy uzyskać dostęp do tablicy do wskaźnika. W tym przykładzie po prostu deklarujemy tablicę i zainicjowaliśmy niektóre wartości. Podstawowy adres tablicy do wskaźnika P. Teraz możemy wydrukować wartość każdego elementu tablicy przez wskaźnik. Jeśli zwiększymy wartość PTR, po prostu przechodzi on do następnego bloku z podstawowego adresu tablicy.

Odniesienie

Z wyjątkiem normalnej zmiennej i wskaźnika, C ++ zapewnia nam specjalny typ zmiennej o nazwie zmienna odniesienia. Teraz dowiadujemy się o zmiennej referencyjnej.

Funkcje zmiennej odniesienia

  1. Przed ogłoszeniem zmiennej odniesienia po prostu piszemy symbol „&”. Wielu z nas ma błędne przekonanie, że „&” jest traktowane jako adres operatora. Ale w rzeczywistości nie jest to traktowane tak pod względem zmiennej referencyjnej.
  2. Kiedy deklarujemy zmienną odniesienia w tym czasie, należy wykonać inicjalizację. W przeciwnym razie występuje błąd.
  3. Zmiennej odniesienia nie można zaktualizować.

Przykład zmiennej odniesienia

int x = 5;

Jeśli chcemy zachować alternatywną nazwę zmiennej x, musimy postępować zgodnie z tą procedurą.

int & y = a;

Oznacza to, że zmienna odniesienia jest tworzona tylko w celu odniesienia istniejącej zmiennej w programie. Za pomocą zmiennej referencyjnej uzyskujemy dostęp do zmiennej x.

Przykład programowania 5

#włączać
za pomocą przestrzeni nazw Std;
int main ()

int x = 15;
int & y = x;
Cout<< x << “ “ << y << endl ;
++y;
Cout<< x << “ “ << y << endl ;
powrót 0;

Wyjście

Wyjaśnienie
Tutaj wprowadzamy zmienną referencyjną y, która odnosi się do zmiennej x przez linię i y = x. W x, 5 jest przypisywane. Jeśli chcemy wydrukować zmienną x i y, oba pokazują ten sam wynik 5.

Jeśli zwiększymy 1 do wartości y i wydrukujemy zarówno zmienną x, jak i y, pokazuje to ten sam wynik 6.

Wniosek

Omawiając szczegółowe informacje na temat pojęcia zarówno wskaźnika, jak i odniesienia, doszliśmy do wniosku, że adres jest najpotężniejszą koncepcją w C++. Za pomocą wskaźnika i odniesienia możemy monitorować zmienne, tablicę, funkcję, strukturę itp. łatwo.