Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem ze zrozumieniem listy jednokierunkowej.

Ostatnio zmodyfikowano 2014-12-19 01:22
Autor Wiadomość
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.

C/C++
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 );
P-123072
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++

P-123092
« 1 »
  Strona 1 z 1