Aktywne Wpisy

lukija +79
ile plusów tyle dni nie zmieniam gaci i wysyłam je do losowego użytkownika komentującego ten wpis

PorzeczkowySok +33
nie porównuj się z normalnymi nie porównuj się z normalnymi nie porównuj się z normalnymi nie porównuj się z normalnymi nie porównuj się z normalnymi nie porównuj się z normalnymi nie porównuj się z normalnymi nie porównuj się z normalnymi nie porównuj się z normalnymi nie porównuj się z normalnymi nie porównuj się z normalnymi nie porównuj się z normalnymi nie porównuj się z normalnymi nie porównuj się z normalnymi
źródło: ab67616d0000b273c533e53205db5ae95c417ed7
Pobierz




Czołem programiści 15k ( ͡° ͜ʖ ͡°)
Czy jest ktoś w stanie wyjaśnić mi, jak działa np. taka konstrukcja:
_void f(typ *&p, int n) {_
Innymi słowy, jak działa wskaźnik na referencję na zmienną, do czego można by to wykorzystać
i czemu po prostu nie typ wskaźnikowy? Znalazłem to gdzieś na stronie o strukturach danych i nie wiem czym to się wyróżnia, że w metodzie, w której coś jest usuwane używają dodatkowo referencji, a w metodach, które np. tylko coś wypisują używają samej deklaracji wskaźnikowej bez ref. Jakby ktoś mógł na to zerknąć i mi to wyjaśnić byłbym suuper wdzięczny!
Edit: czy w takim razie nie powinno być &*p ?
*pto w f dostaniesz lokalną kopię wskaźnika, co w zupełności wystarcza do dostania się do tego na co on wskazuje. Ale czasem musisz zmodyfikować, powiedzmy, że masz jakiśT* ptrwskazujący na null, wywołujesz funkcjęvoid loadObject(T* &ptr), w tej funkcji tworzysz sobie jakiśtam obiekt t typu T i na koniec robisz ptr = &t. To jest horror programistycznyNiema czegoś takiego, nie będzie. Referencja to tylko syntactic sugar na wskaźnik i pozwala kompilatorowi bardziej uważać na typ odcinając się od języka