Wskaźniki C ++

Wskaźniki C ++ są łatwe i przyjemne do nauczenia. Niektóre zadania C ++ są łatwiejsze do wykonania za pomocą wskaźników, a innych zadań C ++, takich jak dynamiczna alokacja pamięci, nie można wykonać bez nich.

Jak wiadomo, każda zmienna jest lokalizacją w pamięci i każda lokalizacja pamięci ma zdefiniowany adres, do którego można uzyskać dostęp za pomocą operatora ampersand (&), który oznacza adres w pamięci. Rozważ następujące, które spowodują wypisanie adresu zdefiniowanych zmiennych -

#include <iostream>

using namespace std;
int main () {
   int  var1;
   char var2[10];

   cout << "Address of var1 variable: ";
   cout << &var1 << endl;

   cout << "Address of var2 variable: ";
   cout << &var2 << endl;

   return 0;
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -

Address of var1 variable: 0xbfebd5c0
Address of var2 variable: 0xbfebd5b6

Co to są wskaźniki?

ZA pointerjest zmienną, której wartością jest adres innej zmiennej. Jak w przypadku każdej zmiennej lub stałej, przed rozpoczęciem pracy należy zadeklarować wskaźnik. Ogólna postać deklaracji zmiennej wskaźnikowej to -

type *var-name;

Tutaj, typejest typem bazowym wskaźnika; musi to być prawidłowy typ C ++ ivar-namejest nazwą zmiennej wskaźnika. Gwiazdka użyta do zadeklarowania wskaźnika to ta sama gwiazdka, której używasz do mnożenia. Jednak w tej instrukcji gwiazdka jest używana do oznaczenia zmiennej jako wskaźnika. Poniżej znajduje się prawidłowa deklaracja wskaźnika -

int    *ip;    // pointer to an integer
double *dp;    // pointer to a double
float  *fp;    // pointer to a float
char   *ch     // pointer to character

Rzeczywisty typ danych wartości wszystkich wskaźników, niezależnie od tego, czy są to liczby całkowite, zmiennoprzecinkowe, znakowe, czy inne, jest taki sam, długa liczba szesnastkowa, która reprezentuje adres pamięci. Jedyną różnicą między wskaźnikami różnych typów danych jest typ danych zmiennej lub stałej, na którą wskazuje wskaźnik.

Używanie wskaźników w C ++

Jest kilka ważnych operacji, które będziemy wykonywać bardzo często ze wskaźnikami. (a) Definiujemy zmienną wskaźnikową. (b) Przypisz adres zmiennej do wskaźnika. (c)Na koniec uzyskaj dostęp do wartości pod adresem dostępnym w zmiennej wskaźnika. Odbywa się to za pomocą jednoargumentowego operatora *, który zwraca wartość zmiennej znajdującej się pod adresem określonym przez jej operand. Poniższy przykład wykorzystuje te operacje -

#include <iostream>

using namespace std;

int main () {
   int  var = 20;   // actual variable declaration.
   int  *ip;        // pointer variable 

   ip = &var;       // store address of var in pointer variable

   cout << "Value of var variable: ";
   cout << var << endl;

   // print the address stored in ip pointer variable
   cout << "Address stored in ip variable: ";
   cout << ip << endl;

   // access the value at the address available in pointer
   cout << "Value of *ip variable: ";
   cout << *ip << endl;

   return 0;
}

Kiedy powyższy kod jest kompilowany i wykonywany, daje wynik w następujący sposób -

Value of var variable: 20
Address stored in ip variable: 0xbfc601ac
Value of *ip variable: 20

Wskaźniki w C ++

Wskaźniki mają wiele, ale łatwych koncepcji i są bardzo ważne w programowaniu w C ++. Istnieje kilka ważnych pojęć dotyczących wskaźników, które powinny być jasne dla programisty C ++:

Sr.No Koncepcja i opis
1 Puste wskaźniki

C ++ obsługuje wskaźnik zerowy, który jest stałą o wartości zero zdefiniowaną w kilku standardowych bibliotekach.

2 Arytmetyka wskaźników

Istnieją cztery operatory arytmetyczne, których można używać na wskaźnikach: ++, -, +, -

3 Wskaźniki a tablice

Istnieje ścisły związek między wskaźnikami a tablicami.

4 Tablica wskaźników

Możesz zdefiniować tablice do przechowywania wielu wskaźników.

5 Wskaźnik do wskaźnika

C ++ umożliwia umieszczenie wskaźnika na wskaźniku i tak dalej.

6 Przekazywanie wskaźników do funkcji

Przekazywanie argumentu przez odwołanie lub przez adres umożliwia zmianę przekazanego argumentu w funkcji wywołującej przez wywołaną funkcję.

7 Zwróć wskaźnik z funkcji

C ++ umożliwia funkcji zwracanie wskaźnika do zmiennej lokalnej, zmiennej statycznej i dynamicznie przydzielanej pamięci.