Nil
N00byStance
nil - słowo kluczowe; jest to stała, która może być przypisana do każdego wskaźnika (Pointer). Kiedy wskaźnik ma wartość nil, nie wskazuje na żaden adres.
Z praktycznego punktu widzenia, alokacja danych jest dokonywana na stosie [ang.stack] (głównie przekazywanie parametrów oraz zmienne lokalne) lub na stercie [ang. heap] (zmienne dynamiczne, obiekty). Pod adresem zerowym sterty znajduje się blok opisu sterty i nie może on zostać nadpisany danymi.
Dlatego nie istnieje dostępny blok pamięci zaalokowany dla zmiennych dynamicznych pod tym adresem. Stąd wartość 0 wskaźnika jest interpretowana jako "wskaźnik na żaden adres" bez straty adresu z puli możliwej do przypisania.
Przykład pokazujący, że wskażnik nil jest w rzeczywistości wskaźnikiem zawierającym wartość zero:
program Przyklad;
{$APPTYPE CONSOLE}
begin
WriteLn(integer(nil));
end.
Zawsze się zastanawiałem dlaczego nil, a nie NULL - dopiero ostatnio skapowałem, że to skrót od łacińskiego nihil :)
Nooby czego chcesz to dobry tekst, temat więcej nie wymaga!
Ładne rozwinięcie :D