W głównej mierze chodzi o to że wskaźnik jest to zmienna przechowująca adres innej zmiennej. Jest to o tyle przydatne:
- możemy przekazywać do funkcji zmienną wskaźnikową czyli wskaźnik a w nim adres innej zmiennej przyjmijmy typu int.
Jest to o tyle przydatne że jeżeli mamy już adres zmiennej (w tym wskaźniku adres zmiennej typu int ) to możemy automatycznie działać na niej(zmiennej typu int), a nie tworzyć kopie i zwracać jak to ma miejsce przy zwykłym przekazywaniu zmiennych.
Podaje Ci przykład działania funkcji bez wskaźnika
#include <iostream>
using namespace std;
int zmien_i_zwroc_bez_wskaznika(int x)
{
x = x*2;
return x;
}
int main()
{
cout << "Podaj wartosc x: ";
int x;
cin>>x;
x = zmien_i_zwroc_bez_wskaznika(x);
cout<<endl<<x;
return 0;
}
A teraz z użyciem wskaźnika:
#include <iostream>
using namespace std;
int zmien_i_zwroc_ze_wskaznikiem(int *x)
{
*x = *x *2;
}
int main()
{
cout << "Podaj wartosc x: ";
int x;
cin>>x;
zmien_i_zwroc_ze_wskaznikiem(&x);
cout<<endl<<x;
return 0;
}
teraz w skrócie opiszę Ci co tutaj się dzieje
-podajemy wartosc x
-wywołujemy funkcje zmien_i_zwroc_ze_wskaznikiem dla &x (znak & przed zmienną jest uzyskanie jej adresu w pamięci )
- *x = *x *2; - w tym zapisie * przed zmienną oznacza jej wartość ponieważ w tej funkcji samo x oznacza adres tej zmiennej , ale że to wskaźnik więć nic nie zwracaamy bo działaliścmy na oryginalnej zmiennej do której potrzebny był na tylko adres :D
Oczywiście to jest tylko jedno z wielu zastosowań. Mam nadzieję że chociaż trochę Ci to rozjaśniłem, w razie problemów poprostu pisz.