Inne operacje na Wskaźnikach
Arytmetyka wskaźników
Arytmetyka wskaźników - w C++ można dodawać i odejmować wartości całkowite od wskaźników. Wynik tych operacji jest nowym wskaźnikiem, którego adres jest równy adresowi pierwotnego wskaźnika z dodaną lub odjętą wartością. Na przykład:
int tablica[5] = {1, 2, 3, 4, 5};
int* wskaznik = &tablica[2]; // wskaznik wskazuje na trzeci element tablicy
int* wskaznik2 = wskaznik + 2; // wskaznik2 wskazuje na piąty element tablicy
int* wskaznik3 = wskaznik - 1; // wskaznik3 wskazuje na drugi element tablicy
Tablice i wskaźniki
Tablice i wskaźniki - w C++ tablice są traktowane jak wskaźniki na ich pierwszy element. Można odwoływać się do elementów tablicy za pomocą indeksów, ale równie dobrze można odwoływać się do nich za pomocą wskaźników. Na przykład:
int tablica[5] = {1, 2, 3, 4, 5};
int* wskaznik = tablica; // wskaznik wskazuje na pierwszy element tablicy
int drugi_element = *(wskaznik + 1); // drugi_element ma wartość 2
Wskaźniki na funkcje
Wskaźniki oraz funkcje - w C++ można tworzyć wskaźniki na funkcje, co pozwala na wywołanie tych funkcji za pomocą wskaźnika. Wskaźnik na funkcję przechowuje adres funkcji, a wywołanie tej funkcji za pomocą wskaźnika jest równoważne zwykłemu wywołaniu funkcji. Na przykład:
#include <iostream>
using namespace std;
void foo() {
cout << "Hello, world!" << endl;
}
int main() {
void (*wskaznik)() = foo; // wskaznik wskazuje na funkcję foo
wskaznik(); // wywołanie funkcji foo za pomocą wskaźnika
return 0;
}
Wskaźniki w C++ mogą być bardzo użyteczne, ale wymagają one uważnego i ostrożnego podejścia. W przypadku nieprawidłowego użycia mogą prowadzić do błędów w programie, takich jak wycieki pamięci lub segfaulty. Ważne jest, aby zawsze ppamiętać o przypisywaniu wartości wskaźnikom tylko poprawnych adresów, a także odbieraniu wartości z poprawnych adresów. W przypadku wskaźników na tablice należy uważać, aby nie wyjść poza granice tablicy, co może prowadzić do nieprzewidywalnych skutków.