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

Struktury danych - lista

Ostatnio zmodyfikowano 2013-01-07 19:05
Autor Wiadomość
rooker
Temat założony przez niniejszego użytkownika
» 2013-01-06 12:13:55
Napisalem kod do listy dynamicznej, ktora wczytuje liczby az do napotkania 0.Liczby są zapisywane po sobie. Korzystalem troche z przykladow innych natomiast nadal niebardzo rozumiem tego zapisu z ->. Może mi ktoś wytłumaczyć???

C/C++
using namespace std;
struct element
{
    int dane;
    element * next;
};
int main()
{
    element * glowa, * aktualny, * ogon;
    glowa = NULL;
    aktualny = NULL;
    int liczba;
    cout << "wpisz liczbe, 0 zakonczy program ;)))";
    cin >> liczba;
    while( liczba != 0 )
    {
        ogon = aktualny;
        aktualny = new element;
        aktualny->dane = liczba;
        aktualny->next = NULL;
        if( ogon == NULL )
        { glowa = aktualny; }
        else
        { ogon->next = aktualny;
            cin >> liczba; }
       
    }
    return 0;
}
P-73122
withelm
» 2013-01-06 13:30:27
C/C++
aktualny->dane = liczba;
aktualny->next = NULL;

^^^ jest równoznaczne z tym

C/C++
( * aktualny ).dane = liczba;
( * aktualny ).next = NULL;
P-73127
rooker
Temat założony przez niniejszego użytkownika
» 2013-01-06 14:12:42
Dzięki withelm, tego mi brakowało. A jeszcze jakbyś mógł słownie to opisać, bo nie jestem pewien co do jednej rzeczy...
P-73134
kubawal
» 2013-01-07 17:20:44
-> (strzałka) działa tak, jak . (kropka), tylko, że uzyskujesz dostęp za pomocą wskaźnika, a nie obiektu:
C/C++
element e;
element * pe = & e;
W tym przykładzie
e.data == pe->data

Już rozumiesz?
P-73249
crash
» 2013-01-07 19:05:52
Rooker@ poczytaj o takich cudach jak wskaźniki, o dynamicznym przydzielaniu pamięci i czym ono różni się od przydzielania statycznego. Mi też się kiedyś wydawało, że operator -> jest całkiem zbędny bo kropka załatwia wszystko - tak się składa, że to dobrze, że są dwa osobne operatory. Kropka pozwala na dostęp do pola obiektu tworzonego statycznie [1], a operator -> do dostępu do pola obiektu tworzonego dynamicznie.

[1] wyjątkiem jest: (*Obiekt) . pole

Jeśli chcesz programować w C++ musisz wiedzieć, jak wygląda przydzielania pamięci

P-73260
1 « 2 »
Poprzednia strona Strona 2 z 2