Was bedeutet NIL?
spacer
Autor Nachricht
Btl
Hält's aus hier
Beiträge: 7



BeitragVerfasst: So 13.11.11 19:13 
Moderiert von user profile iconNarses: Abgetrennt von hier.

was heißt eigentlich nil ?
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
jfheins
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 332
Erhaltene Danke: 7

Win Vista
VS 2008
BeitragVerfasst: So 13.11.11 19:29 
[url]http://de.wikipedia.org/wiki/Nil_(Begriffsklärung)[/url]

Zitat:
in einigen Programmiersprachen einen nicht zugewiesenen Wert (Nullwert).

(Abkürzung für "not in list")
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
haentschman
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 156
Erhaltene Danke: 13


Delphi 2007, Delphi XE
BeitragVerfasst: So 13.11.11 19:34 
Hallo...
lt. Wörterbuch 8) ...
Zitat:

Deutsch.................................Englisch
nichts; null; keine; keiner;....none; naught; nil; nowt


Beispiel: Wenn eine Objektinstanz nil ist, dann ist sie leer bzw. enthällt kein Objekt.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 503
Erhaltene Danke: 30


Delphi 2-4
BeitragVerfasst: Mo 14.11.11 01:07 
Not in list - nicht in der Liste - ist m.E. ein wenig irreführend, denn Listen als Datenstrukturen sind n.m.W. nicht zwingend nötig.

Tatsächlich ist nil das Nullelement, der Nullwert in der Welt der Zeiger, ein Zeiger, der nirgendwohin zeigt, nicht einmal zur 0. Speicherzelle.

So, wie die Null das Nullelement in der Welt der Zahlen, der Nullvektor das Nullelement in der Welt der Vektoren, der Punkt das Nullelement in der Geometrie und die leere Menge das Nullelement in der Mengenlehre ist usw. usf., so ist eben nil eben auch ein Nullelement, nämlich in der Welt der Speicheradressierung(en).


Zuletzt bearbeitet von Delphi-Laie am Mo 14.11.11 12:45, insgesamt 1-mal bearbeitet
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 979
Erhaltene Danke: 124

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mo 14.11.11 01:58 
und wen es in der Implementierung interessiert
ausblenden Delphi-Quelltext markieren
1:
Showmessage(IntToStr(Integer(nil)));

_________________
Das Problem liegt üblicherweise zwischen den Ohren
DRY DRY KISS
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1572
Erhaltene Danke: 50

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Mo 14.11.11 04:09 
user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
ein Zeiger, der nirgendwohin zeigt, nicht einmal zur 0. Speicherzelle.

Wenn du Speicherstelle 12345 mit dem Zeiger 0x00003039 (=12345d) adressierst, dann adressierst du die Speicherstelle 0 mit 0x00000000, heißt ein NullPointer (= 0x00000000) zeigt auf die Speicherstelle 0. Oder hab ich jetzt n Denkfehler?! :nut:

_________________
Ich weiß nicht viel lern aber dafür umso schneller^^
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
Beiträge: 308
Erhaltene Danke: 22

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: Mo 14.11.11 05:32 
aus Wikipedia:
:
NIL

Einige Programmiersprachen (beispielsweise Pascal, LISP, Smalltalk, Ruby, Objective-C) verwenden die Bezeichnung nil, anstatt Null oder null. Nil steht einerseits für englisch not in list, also nicht in der Liste. Dies hat historische Gründe, es entstammt der Programmiersprache LISP, die als einzige Datenstruktur den in Blattrichtung verketteten Binärbaum kennt, der aber gewöhnlich nur zur Darstellung einfach verketteter Listen genutzt wird. Die Bezeichnung wurde auch für andere Programmiersprachen übernommen, da das lateinische Wort nil soviel bedeutet wie nichts.



NIL = Abkürzung für nihil : nichts (lateinisch). Man sieht, irgendwo sind die alten Römer doch aktiv. ;) Und wenn es im Nichts ist. ;)

_________________
Toleranz ist eine Grundvoraussetzung für das Leben.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Luckie
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 11803
Erhaltene Danke: 146

WindowsXP Professional SP2
BDS2006, VS C++ Express, Eclipse (Java), Flex (Flash, AS)
BeitragVerfasst: Mo 14.11.11 09:37 
user profile iconBergmann89 hat folgendes geschrieben Zum zitierten Posting springen:
Wenn du Speicherstelle 12345 mit dem Zeiger 0x00003039 (=12345d) adressierst, dann adressierst du die Speicherstelle 0 mit 0x00000000, heißt ein NullPointer (= 0x00000000) zeigt auf die Speicherstelle 0. Oder hab ich jetzt n Denkfehler?! :nut:

Im Adressraum eines Prozesses gibt es die sogenannte "Partition für NULL*-Zeigerzuweisungen". Dieser liegt bei Windows20000** im Bereich von 0x00000000 bis 0x0000FFFF (x86). Greift ein Prozess lesend oder schreibend auf Adressen dieses Bereiches zu löst der Prozessor eine Zugriffsverletzung aus. Dies wird von Funktionen genutzt, die Zeiger zurückgeben. Kann kein Zeiger zurückgeben werden, weil das Reservieren von Speicher fehlgeschlagen ist, wird eine Adresse aus dem genannten Bereich zurückgegeben, damit der Programmierer die Chance hat zu prüfen, ob erfolgreich Speicher reserviert wurde. Wäre dem nicht so, hätte der Programmierer nicht die Möglichkeit zu prüfen, ob die Funktion erfolgreich war, weil ja alle Adressen letztendlich irgendwie gültig sind, im Sinne von "existieren". Ob dahinter verwertbare Daten stecken oder nicht, ist was anderes.


*) NULL in C/C++ entspricht nil in Pascal
**) Habe leider keine Literatur für Windows XP und höher

_________________
Gruß Michael
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star
Beiträge: 8625
Erhaltene Danke: 147

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 28.11.11 01:07 
Das NULL-Segment ist immer exakt eine Guard Page mit der nativ vom OS verwendeten Page Size. Auf 32 Bit sind das 4KiB, bei 64 Bit muss ich nachschauen.

Ist bei Linux übrigens genauso, weil das von der CPU-Architektur kommt.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home