C++ wskaznik/wskazniki ile? warto? co...

0

Witam mam pewien mały kłopocik mianowicie w ramach samodzielnej nauki po przeczytaniu 1 tomu "Symfonia C++ Standard" próbuje zrobić Symulator Bankomatu i tu pojawia się moje pytanie.

Chciałem użyć wskaznika/ów by przyspieszyć działanie programu jednak sam wskażnik też zajmuje jakieś miejsce więc czy programik dostanie kopa jeżeli do kilku zmiennych będę używał wskażników?
Np do 5 zmiennych będę odnośił się 5 wskażnikami to program będzie musiał wykreować te wskażniki co troche zajmie. Więc czy w przypadku tylko kilku/nastu zmiennych opłaca się odnosić do nich przez wskażniki?

A może do tych kilku/nasu zmiennych odnośić się za pomocą jednego wskażnika któremu oczywiście będzie trzeba zmieniać to na co ma pokazywać w zależnośći od sytuacji co oczywiście wydłuży nieco kod,i wykonywanie programu.

#edit
No tak Dragon.
Ale czy nie można robić tak że ma się ustawiony na coś wskażnik jak się go nie używa to się go ustawia na zero i potem na inna zmienną i tak w kółko ?

0

Zmiennych ma być dokładnie tyle ile musisz mieć niezależnych wartości.
Ponieważ wskaźnik musi wskazywać na konkretną zmienną lub na przydzielone miejsce w pamięci (o ile chcesz pod niego coś zapisać/odczytać).

0
ace4ur napisał(a)

Witam mam pewien mały kłopocik mianowicie w ramach samodzielnej nauki po przeczytaniu 1 tomu "Symfonia C++ Standard" próbuje zrobić Symulator Bankomatu i tu pojawia się moje pytanie.

Chciałem użyć wskaznika/ów by przyspieszyć działanie programu jednak sam wskażnik też zajmuje jakieś miejsce więc czy programik dostanie kopa jeżeli do kilku zmiennych będę używał wskażników?
Np do 5 zmiennych będę odnośił się 5 wskażnikami to program będzie musiał wykreować te wskażniki co troche zajmie. Więc czy w przypadku tylko kilku/nastu zmiennych opłaca się odnosić do nich przez wskażniki?

A może do tych kilku/nasu zmiennych odnośić się za pomocą jednego wskażnika któremu oczywiście będzie trzeba zmieniać to na co ma pokazywać w zależnośći od sytuacji co oczywiście wydłuży nieco kod,i wykonywanie programu.

#edit
No tak Dragon.
Ale czy nie można robić tak że ma się ustawiony na coś wskażnik jak się go nie używa to się go ustawia na zero i potem na inna zmienną i tak w kółko ?

Albo ja czegoś nie rozumiem powyżej, albo to ty nie do końca qumasz jak to jest z wskaźnikami.
Obstawiam na 2 wersje.

0

Hmm...
Ze wskażnikiem jest tak, że program ustawia go sobie tak by mieć do niego łatwy dostęp czyli by szybciej go użyć czyż nie?
To jeżeli ustawie kilka takich wskażników na zmienne to praca programu powinna przyśpieszyć.
Ale definicja i ustawienie na "coś" wskażnika też wymaga jakiejś akcji od programu która jednak na chwile skupia uwagę programu więc zatrzymuje się na stworzeniu wskażnika i leci dalej a to "zatrzymanie" zabiera chwilę.
Tak więc ile jest wpisane do tej chwili tworzenia wskaznika? Na pewno tworzy i ustawia go szybciej niż gdyby program miał odszukać jakąś zmienna i jej użyć.

Ale czy ta różnica jest znacząca przy kilku wskażnikach?

0
ace4ur napisał(a)

Ze wskażnikiem jest tak, że program ustawia go sobie tak by mieć do niego łatwy dostęp czyli by szybciej go użyć czyż nie?

Nie.

ace4ur napisał(a)

To jeżeli ustawie kilka takich wskażników na zmienne to praca programu powinna przyśpieszyć.

Wskaźnik sam w sobie jest zmienną, użycie wskazywanego obiektu wymaga każdorazowo odczytania wartości wskaźnika, to daje dodatkowe operacje. Korzyścią z używania wskaźników (a lepiej referencji) jest unikanie niepotrzebnego kopiowania obiektu, zamiast kopiowania dużej ilości danych używa się niewielkiej, chociaż miejscami nieco większym kosztem.

0

Źle myślisz. Kto Ci powiedział, że odwoływanie się do zmiennej przez wskaźnik jest szybsze? Znaczenie będzie miało np. przy przekazywaniu obiektów do funkcji, ale nie zwykłe odnoszenie się do zmiennych.

0

Było tak wyjaśnione w rozdziale o wskażnikach w jakimś tutku co niedawno czytałem

Ok to dzięki wielkie za sprowadzenie mnie na właściwą drogę.

0

Wskaźniki nie służą do przyspieszania programów. Czasem ich użycie rzeczywiście przyspieszy (unikamy kopiowania danych), czasem spowolni (konieczność dereferencji przed odczytaniem właściwych danych)

1 użytkowników online, w tym zalogowanych: 0, gości: 1