• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ wskaźniki

Object Storage Arubacloud
0 głosów
1,487 wizyt
pytanie zadane 28 września 2017 w C i C++ przez milioneq Początkujący (260 p.)
Do czego głównie służą wskaźniki w C++? Już obejrzałem kilka poradników i ciągle nie rozumiem. Niektórzy mówią że do optymalizacji programu.

3 odpowiedzi

+1 głos
odpowiedź 28 września 2017 przez Ehlert Ekspert (212,670 p.)
Głównie wskaźniki przydają się przy pełnym zrozumieniu obiektowości. Używa się ich przy polimorfiźmie. Bardziej przyziemne zastosowanie to możliwość odwołania się do instancji obiektu bez konieczności jego kopiowania. Jeśli utworzyłeś instancję klasy tektura, która waży 2 MB i musisz ją przekazać do 100 metod setTexture, to wykorzystujesz wskaźnik (lub referencję), zamiast 100 kopii.

Niestety pełne zrozumienie zastosowania wskaźników przychodzi po pewnym czasie.
komentarz 28 września 2017 przez milioneq Początkujący (260 p.)
troche rozumiem
0 głosów
odpowiedź 28 września 2017 przez Partyjny Obywatel (1,170 p.)
edycja 28 września 2017 przez Patrycjerz

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.

komentarz 28 września 2017 przez Patrycjerz Mędrzec (192,320 p.)

Oj panie… Przeczytaj koniecznie to.

0 głosów
odpowiedź 28 września 2017 przez mokrowski Mędrzec (155,460 p.)
https://helion.pl/ksiazki/wskazniki-w-jezyku-c-przewodnik-richard-reese,wskazc.htm

.. bo pytanie jest tak szerokie że odpowiedź na forum będzie zawsze fragmentaryczna.

Podobne pytania

0 głosów
1 odpowiedź 661 wizyt
pytanie zadane 30 kwietnia 2020 w C i C++ przez Eriss69 Gaduła (4,470 p.)
0 głosów
1 odpowiedź 471 wizyt
pytanie zadane 10 stycznia 2019 w C i C++ przez Mavannkas Bywalec (2,290 p.)
0 głosów
2 odpowiedzi 352 wizyt
pytanie zadane 24 listopada 2018 w C i C++ przez eSpring Początkujący (270 p.)

92,556 zapytań

141,403 odpowiedzi

319,559 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...