Programowanie w języku Delphi

Nil

  • 2005-12-22 18:01
  • 3 komentarze
  • 3066 odsłon
  • Oceń ten tekst jako pierwszy
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.

3 komentarze

Format 2009-01-26 01:00

Zawsze się zastanawiałem dlaczego nil, a nie NULL - dopiero ostatnio skapowałem, że to skrót od łacińskiego nihil :)

kucia 2006-01-20 22:07

Nooby czego chcesz to dobry tekst, temat więcej nie wymaga!

N00byStance 2005-12-22 18:13

Ładne rozwinięcie :D