Problem ze zrozumieniem listy jednokierunkowej.
Ostatnio zmodyfikowano 2014-12-19 01:22
brave12013 Temat założony przez niniejszego użytkownika |
Problem ze zrozumieniem listy jednokierunkowej. » 2014-12-18 18:32:48 Witam mam pewien problem otóż jutro mam kolosa z algorytmów na którym będą między innymi listy. Problem jest w tym, że nie bardzo rozumiem czemu raz używa się & drugim razem * a trzecim * &. Czy ktoś potrafi w prosty sposób wyjaśnić, kiedy powinno się czego uzywać. Przykłady funkcji. oraz ich wywołanie w funckji main. Funkcje te działają jak powinny. void dodajNaPocz( int d, Wezel * & g, Wezel * & og ) { Wezel * nowy; nowy = new Wezel; nowy->dane = d; nowy->next = g; g = nowy; if( og == NULL ) og = nowy; } void wypisz( Wezel * g ) { Wezel * tmp = g; while( tmp != NULL ) { cout << tmp->dane << "\n"; tmp = tmp->next; } }
int main() { Wezel * glowa, * ogon; glowa = NULL; ogon = NULL; for( int i = 1; i <= 10; i++ ) dodajNaPocz( i, glowa, ogon ); wypisz( glowa );
|
|
darko202 |
» 2014-12-19 01:22:46 http://cpp0x.pl/kursy/Kurs-C++/Wskazniki/304>raz używa się & drugim razem * a trzecim * &. int x=0; //deklarujemy zmienną int = 0 int* wskx; // deklarujemy wskaźnik na zmienną typu int ona przechowuje adres w pamięci (czyli np. 0x002950E8) wskx = &x; //& przypisanie wskaźnikowi adresu zmiennej x *wskx // tu pobieramy wartość komórki pod adresem na który wskazuje wskaźnik czyli zwróci 0 *&x // czytamy od prawej strony (&x) adres w pamięci pod którym zapisana jest x (czyli np. 0x002950E8) // *(&x) tzw wyłuskanie pobranie wartości zapisanego pod wskazanym adresem // dla uproszczenia pomijamy nawiasy itd. podobnie problem ten jest podstawowy i jest bardzo dokładnie opisany w literaturze C++ |
|
« 1 » |