Diskussion:Nullwert
NULL in C/C++
[Quelltext bearbeiten]IMHO ist NULL eher ein Zustand als ein Wert. Daher sind Vergleiche von Werten mit NULL stets falsch. NULL ist weder größer noch kleiner noch gleich noch ungleich 1. Über das (Nicht-)Verwenden von NULL wird daher gerade bei Datenbankler gerne philosophiert. --Tollwut 15:30, 3. Mär 2004 (CET)
- Zumindest in C/C++ ist NULL eine Konstante mit dem Wert 0 und wird meist anstelle von (void*)0 verwendet; NULL ist hier also durchaus ein Wert --wizzar 02:14, 4. Dez 2004 (CET)
War es nicht so, dass nil für "not in list" stand? Meine Pascal-Zeit ist leider nur kurz gewesen und schon eine Weile her...
- Ja, das ist eine mögliche Interpretation von nil, die vor allem deshalb wahrscheinlich ist, weil sie ebenso als Markierung eines Listenendes in LISP verwendet wird. --SirJective 00:02, 20. Apr 2004 (CEST)
"nil steht einerseits für ...", aber es gibt kein "andererseits".--Gunther 16:55, 3. Mär 2005 (CET)
Null = undefiniert? IMHO nicht richtig. Null ist sehr wohl definiert, Null eben. Undefiniert ist z.B. in C/C++ eine Variable noch keinen Wert zugewiesen bekommen und damit irgend einen zufälligen Wert besitzt. --Pumuckl2 05:31, 15. Apr 2005 (CEST)
- entschuldigung falls ich jetzt fachlich falsche aussagen mache (bin (noch) kein informatikstudent) aber ich denke du bringst hier theorie und praxis durcheinander bzw. bedeutung und umsetzung. die bedeutung ist eben die nichtvorhandenheit eines wertes was sich aber praktisch natürlich wie du richtig anmerktest nur durch einen wert 'signalisieren'/'mitteilen' lässt. und NULL ist in C(++) nicht als 0 definiert; siehe oben. --wizzar 07:13, 4. Jun 2005 (CEST)
- In C++ schon: Auszug aus z.B. malloc.h (GNU/Linux):
#ifndef NULL # ifdef __cplusplus # define NULL 0 # else # define NULL ((__malloc_ptr_t) 0) # endif #endif
- --Gunther 00:29, 5. Jun 2005 (CEST)
- Wenn man keine Ahnung hat... ;-) - Also es stimmt, dass die Ziffer 0 sowohl ein int-Literal darstellt, aber auch ein Zeiger-Literal nämlich den Nullzeiger. Es ist aber nirgends gefordert, dass die bitweise Repräsentation des Nullzeigers zu der repräsentation des Zahlenwertes 0 identisch sein muss. Auf den meisten heutigen Plattformen ist das zwar so, weil es den Compiler wesentlich vereinfacht. Aber auf älteren Plattformen (ich glaube, aus der PDP-Serie), wo es etwa noch echten keinen Speicherschutz gab, dafür aber der Zugriff ein bestimmte Speicherstelle (also eine Adresse mit einem bestimmten Bitmuster) eine Prozessor-Exception auslöste, war es sehr wohl sinnvoll, eben diese speziellen Bitmuster als Nullzeiger in C zu benutzen, weil man somit wenigstens einen schutz vor Nullzeiger-Dereferenzierungen hatte. --RokerHRO 17:10, 27. Jun 2005 (CEST)
- ups; danke für den hinweis gunther --wizzar 01:50, 28. Jun 2005 (CEST)
- Habe den Nullzeiger-(Literal-)Abschnitt entsprechend umgearbeitet. Könnte vielleicht noch verständlicher formuliert werden, aber das wird dann bald ein eigener Abschnitt/Artikel... Leider ist die Situation in C/C++ recht komplex. --84.165.98.239 04:38, 25. Mär. 2007 (CEST)
NULL sollte eher als "Wert unbekannt" übersetzt werden. In Datenbanken gibt es hierfür das sogenannte NULL-Flag, das gesetzt werden kann. Ist dieses NULL-Flag gesetzt, so wird der Speicherplatz, der normalerweise den Wert beinhaltet, nicht beachtet. Um NULL in C/C++ korrekt umzusetzen, benötigt man für jede Wert-Variable "Value" eine zusätzliche boolesche Zustands-Variable "ValueIsNull". Einfacher ist es jedoch, einen sog. NULL-Äquivalenten einzuführen; für integer z.B. 0 (vgl. malloc.h) oder für Datumswerte z.B. 1.1.1900. --Tollwut
Die BKS Nichts verlinkt auf Nichts (Mathematik). Diesen Artikel sollte man entweder verschieben oder löschen, da "nichts" kein mathematischer Begriff ist. Ich könnte mir denken, dass (a) eine Verlinkung von Nullwert auf der BKS und (b) eine Übernahme des zweiten Teils aus Nichts (Mathematik) sinnvoll wäre, aber ich bin kein Experte.--Gunther 02:34, 29. Mär 2005 (CEST)
erledigt und "Nichts (Mathematik)" in Undefinierter Wert umbenannt. Zusammenhang mit Nullwert sollte noch geprüft werden . --Philip 17:44, 10. Apr 2005 (CEST)
Einzufügender, wenn auch magerer und zu bearbeitender Inhalt aus ehem. "Nichts (Mathematik)", dann sollten die beiden Begriff Null und Undefiniert klarer getrennt werden! : Als numerischer Wert wird die Null als Nichts im Sinne einer Menge oder Anzahl verwendet. In dieser Bedeutung findet sich der Begriff auch im Computer (siehe Null), wo er oft die Abwesenheit eines Datenwertes darstellt. Ferner repräsentiert auch die leere Menge (oft mit {} oder ∅ notiert) Nichts. Tatsächlich wird die Zahl Null sogar häufig über diese definiert und beide dann gleichgesetzt.
Die Repräsentation von "Nichts" in Form eines bewußt ungültigen Wertes war bei der Datenverarbeitung häufig ein Problem. Historisch führte dies beispielsweise zu Umstellungsproblemen zur Jahrtausendwende, wo durch den Umschlag auf den zweiziffrigen Dezimalwert "00" auf einmal in vielen Programmen, vor allem den Fortran-basierten, Datensätze systematisch ungültig wurden (Siehe hierzu Jahr-2000-Problem).
in Abschnitt NUL: Was bedeutet der Satz?
[Quelltext bearbeiten]Ich verstehe folgenden Satz nicht. Dieses Zeichen bietet sich in C deshalb an, weil es aufgrund der automatischen Typumwandlungen in C in die Ganzzahl 0, welche für den logischen Wert FALSCH steht und somit die Abfragen auf das Ende einer Zeichenkette vereinfacht werden. Er enthält grammatische Fehler und wird dadurch unverständlich. Ich wollte ihn korrigieren, verstehe ihn aber nicht. --Hutschi 10:02, 24. Feb 2006 (CET)
- Diese Konvention erlaubt es, Zeichenketten über eine
while
-Schleife zu traversieren, die automatisch endet, wenn das eingelesene Zeichen ASCII NUL ist:char *s = "Hallo Welt"; while(*s) { /* mach was mit *s */ ; ++s }
- Ein anderes Endezeichen würde zu gerinfügig längerem Code führen:
char *s = "Hallo Welt"; while(*s!=ENDEZEICHEN) { /* mach was mit *s */ ; ++s }
- Das Paradebeispiel für eine Zeichenkettenkopierschleife (
while(*d++=*s++);
) würde mit einem anderen Endezeichen ebenfalls nicht mehr so funktionieren. --RokerHRO 09:08, 27. Dez. 2006 (CET)
Not Null - auf der Bedienoberfläche = Nicht leer
[Quelltext bearbeiten]Bei Anwenderdokumentationen beschreibe ich, dass Felder, die mit "not Null" definiert sind, nicht leer sein dürfen. Dagegen gibt es keinen praktischen für den Anwender relevanten Unterschied, ob hinter einem leeren Feld ein nicht vorhandener Wert oder ein Wert mit dem Wert "leer" (nicht zu verwechseln mit dem typografischen Leerzeichen) steht. Für den Programmierer aber ist es meist wesentlich. --Hutschi 10:21, 24. Feb 2006 (CET)
Gescheiterte Lesenswertkandidatur März/April 2006
[Quelltext bearbeiten]Als Nullwert (kurz NULL, NIL oder ()) bezeichnet man in der Informatik einen Zustand, der das Fehlen eines Wertes anzeigen soll. Nach Edgar_F._Codd unterscheidet man zwei Arten von NULL: die Abwesenheit eines Wertes, weil keiner existiert, oder die Abwesenheit, da man den Wert (noch) nicht kennt.
Richardigel 11:00, 30. Mär 2006 (CEST)
Pro Kompakt, verständlich, vollständig --- Autor der letzten 11 Edits – ungefähr der Hälfte des gegenwärtigen Artikels ... — ok, das war die Kandidatur und 9 Edits danach
- stimmberechtigt?! — Nol Aders 09:33, 1. Apr 2006 (CEST)
- Autoren - insbesondere Hauptautoren - sollten sich von sich aus der Stimme enthalten, haben aber trotzdem das Recht abzustimmen, wobei, wenn ich dich richtig verstanden habe 2 Edit nicht wirklich viel sind. -- Dr. Shaggeman Wat schnackst??? 20:05, 1. Apr 2006 (CEST)
- geht es noch kleiner ?--Greenx 01:08, 6. Apr 2006 (CEST)
Kontra Ausschweifend, unverständlich, ...
- Zu den Kritikpunkten:
- In der Einletung steht, dass es sich eingebürgert hat NULL zu schreiben, was verkehrt ist, da Java und C# es null schreiben (klein).
- Der Abschnitt Gleichsetzung vereinbarter gültiger Werte mit Undefiniertheit ist unverständlich für einen Laien.
- Im Abschnitt Null als zusätzlicher Wert wird erst über Programmiersprachen geredet und anschließend über mehrere Absätze von Datenbanken. Die Absätze über Datenbanken wirken dabei aus dem Kontext gerissen, da ich erwarte, dass jeder Absatz ein neues Thema behandelt und nicht über ein Thema über mehrere Absätze geht. (Evtl. neue Zwischenüberschrift).
- Die Abschnitte leere Zeichenkette ("") und NAN gehören meiner Meinung nach nicht in diesen Artikel.
- Der ganze Artikel ist nur verständlich, wenn man bereits ein Fachwissen auf dem Gebiet der Programmierung besitzt. Wer ohne Vorkenntnis versucht diesaen Artikel zu verstehen, der wird anschließend nicht schlauer sein.
- Daher mein Urteil: keinesfalls lesensert. --Herr Schroeder 11:23, 30. Mär 2006 (CEST)
- Danke für die überaus konstruktive Kritik. Ich bin deine Punkte wie eine Anleitung druchgegangen und habe korrigiert - zugegeben aber kann man den Abschnitt über Datenbanken noch viel stärker machen, Datenbanken behandeln die Null sehr interessant, und auch die Operationen der dreiwertigen Logik mit 0 sind interessant, da hier und und oder durch max und min ersetzt werden. --Richardigel 12:22, 30. Mär 2006 (CEST)
Nach der Korrektur ändere ich meine Meinung in Herr Schroeder 13:44, 30. Mär 2006 (CEST)
Neutral. Ich halte den Artikel nach wie vor nicht für Laien verständlich, gegenüber dem ursprünglichen Artikel wurde jedoch schon etwas verbessert. --Nol Aders 13:20, 31. Mär 2006 (CEST)
Kontra Sachlich unrichtiger Schwurbel – fünf oder sechs verschiedene Begriffe und Konzepte werden weder sachlich richtig erklärt noch klar oder korrekt voneinander abgegrenzt. Wenn einE Informatik-StudentIn in einem unteren Semester in einer Semester-Arbeit sowas schriebe, erhielte er/sie eine ungenügende Note. Dieser Artikel ist schlimmer als gar kein Artikel, gehört so sicher nicht in eine Enzyklopädie, ist nicht einmal verbesserungsfähig. Zurück auf Feld 1. —84.184.212.226 23:34, 31. Mär 2006 (CEST)
Pro Toller Artikel! --- stimmberechtigt?! — Nol Aders 09:33, 1. Apr 2006 (CEST)
- Ja, auch IPs dürfen abtimmen. Hättest Du die Frage auch bei einem Contra gestellt? -- Dr. Shaggeman Wat schnackst??? 20:05, 1. Apr 2006 (CEST)
- Ja, ich habe einfach zu wenig Erfahrung, dass ich das gewusst hätte, und war wahrscheinlich zu faul, um selbst nachzuforschen. Dass IPs stimmberechtigt sind, eröffnet immerhin gewisse Möglichkeiten zur Manipulation; ein allfälliger Manipulator muss sich nicht einmal mehr die Mühe machen, sich ein paar Sockenpuppen zuzulegen. Schön, wenn das so funktioniert, ohne dass wir das auch noch reglementieren müssen! — Nol Aders 02:53, 2. Apr 2006 (CEST)
- Versuche der Manipulation kommen schon mal vor, sind aber eher selten. In der Regel sind pro Artikel höchstens 1 bis 2 IPs dabei, mehr fallen dann doch schon auf, zumal ihre Stimmen dann häufig noch nahezu identischen Wortlaut haben. Sockenpuppen fallen übrigens auch häufig auf. Und es gibt hier immer Leute, die mal durchschauen, ob alles ok ist. Im Moment herrscht hier aber noch kein Grund zur Panik. -- Dr. Shaggeman Wat schnackst??? 03:50, 2. Apr 2006 (CEST)
contra - Wie schon erwähnt, geht es da um mehrere, voneinander völlig unabhängige Konzepte.
- Ein von der Programmiersprache definierter Wert für "undefiniert". Dazu gehören z.B. NIL in Pascal, None in Python, etc.
- Ein durch eine Konvention in der Sprachbeschreibung für den gleichen Zweck abgestellter arithmetischer Wert (z.B. 0 oder -1).
- Ein ähnlich verwendeter nicht-arithmetischer Wert (z.B. die leere Liste in LISP, welche ausser dem Namen nichts mit dem NIL aus Pascal zu gemeinsam hat)
- Leere Zeiger (in manchen Sprachen ebenfalls als arithmetische 0 formuliert)
- Private Konventionen für irgendwelche anderen Sonderwerte.
- Eine Automatik in einigen dynamischen Programmiersprachen, welche bei der Benutzung einer undefinierten Variable einen Wert der ersten Kategorie zurückliefert (bei den meisten Sprachen ist das ein Laufzeitfehler).
- Die technische Behandlung von leeren Feldern in Datenbanken.
- Alltagssprachliche Formulierungen für den gleichen Zweck (z.B. "n/a").
Der Artikel tut zunüchst so, als wäre das alles das gleiche, und erwähnt die Unterschiede erst nach und nach im laufenden Text, zum Teil auch noch unvollständig oder falsch. Um dem Ganzen die Krone aufzusetzen, ist der Artikel nicht nach Konzepten gegliedert, sondern völlig sinnloserweise nach den gängigen Bezeichnungen. Dass gleiche Namen in unterschiedlichen Programmiersprachen völlig verschiedene Konzepte bezeichnen können, scheint den Autoren entgangen zu sein. Dieser Text ist wesentlich näher bei einer Löschdiskussion als bei lesenswert. Da hilft wahrscheinlich nur eine grundlegende Neufassung. --Latebird 10:48, 1. Apr 2006 (CEST)
- Koethnig 03:19, 3. Apr 2006 (CEST) Kontra überzeugt mich schon von Ausdruck und Stil nicht. --
Mit 2 Contra zu 2 Pro gescheitert. -- Dr. Shaggeman Wat schnackst??? 17:51, 6. Apr 2006 (CEST)
Alternativen zur Null
[Quelltext bearbeiten]Hallo, Self praktiziert den "Behaviourism", so nennen die das. Dabei wird vorgeschlagen, auf NULL zu verzichten und stattdessen spezielle Objekte zu benutzen, die sich wie die bestimmte NULL verhalten, die gemeint ist.
Der Ausgangsgedanke scheint zu sein, dass es ohnehin so viele Arten Null gibt, dass es gar nicht "die" Null gibt, sondern dass Null nur verschiedene Spielarten von "Spezialfall" markiert. Man soll die verschiedenen Null-Objekte so bauen, dass sie reagieren, sodass man nie auf "NULL" testen braucht. Bspw. soll man in einem binären Baum als Kinder der Blätter nicht einfach "Null" eintragen, sondern einen Verweis auf dieses Spezialobjekt, wie es Sedgewick in "Algorithmen" implementiert, als ein Knoten der als linker und rechter Knoten sich selbst zurückgibt (das hat in seinen Algorithmen Vorteile und verhindert Spezialfälle). Will sagen: Spezialfälle werden in den allermeisten pauschal durch ein Nil-Objekt erschlagen, aber es gibt diesen anderen Ansatz, der wenigstens erwähnt werden kann, wenn ihn jemand gescheit in Worte kapseln kann. igel+- 12:22, 25. Okt. 2006 (CEST)
- Ich kenne dieses Entwurfsmuster in der objektorientierten Welt als Nullobjekt. Der Link leitet leider auf ein völlig anderes Thema, da müssen wir wohl noch eine Begriffsklärungsseite einfügen. Hier ein Originaldokument: [1]. Und hier eine Beschreibung im ersten aller Wikis: http://c2.com/cgi/wiki?NullObject --jpp ?! 13:03, 25. Okt. 2006 (CEST)
- Da müsste man unterscheiden zwischen einem "Nullobjekt", das für "nicht vorhandenes Objekt" steht. Jeglicher Zugriff auf ein solches Objekt würde einen Laufzeitfehler auslösen. Dies leistet ja die NULL von C oder 0 als Zeigerliteral bei C++ bereits. Was du meinst, wäre ein spezielles Default-Objekt, das bestimmte Zugriffe erlaubt (z.B.
getNext
gibt eine Referenz auf sich selbst zurück), andere hingegen nicht (z.B.getValue
). Einige Implementierungen für Bäume und verkettete Listen arbeiten tatsächlich mit solchen "Dummy-Objekten". Sie definieren sie sich aber selbst, da nur die Implementierung weiß, welche Eigenschaften diese Objekte haben sollen/müssen. --RokerHRO 09:19, 27. Dez. 2006 (CET)
- Nachtrag: Eine Baum-Implementierung, deren Blätter als Kindknoten sich selbst eintragen, würde beim naiven Traversieren in eine Endlosschleife geraten. Ganz so einfach ist es also nicht mit den Null-/Defaultobjekten. --RokerHRO 21:17, 25. Dez. 2009 (CET)
Verschiedene Semantiken, die ein Nullwert (in einer Datenbank) annehmen kann
[Quelltext bearbeiten]Da ein Nullwert in einer DB verschiedene Semantiken haben kann, und dieser Semantikunterschied oftmals von Bedeutung ist, sollte der Artikel auf diesen Umstand besser eingehen. Oft muss man zwischen "nicht bekannt" und "nicht vorhanden" unterscheiden. Einige Anwendungen erfordern sogar eine Unterscheidung zwischen "(derzeit) nicht vorhanden" und "nicht möglich".
SQL bietet meines Wissens keine standardisierte Möglichkeit, zwischen "nicht bekannt" und "nicht vorhanden" zu unterscheiden. Ein "nicht möglich" lässt sich ggf. durch Constraints nachbilden. Gibt es denn überhaupt Programmiersprachen/Datenmodellierungssprachen, die diese 2 oder 3 (oder sogar 4 mit "don't care") verschiedenen Semantiken für Nullwerte unterscheiden können? --RokerHRO 09:13, 27. Dez. 2006 (CET)
- Das ist doch ein Problem der Datenmodellierung. Man kann zu jedem Attribut in einem Datenmodell beliebig viele Metadaten definieren. Für die technische Umsetzung kann dann die null-Eigenschaft von Tabellenattributen verwendet werden. Wenn das nicht ausreicht, dann kann man noch beliebig viele weitere beschreibende Attribute hinzufügen. --Julius-m 20:59, 3. Jan. 2008 (CET)
- Sicher geht das mit den Metadaten. Aber schön ist das nicht. Besser wäre es, wenn man direkt zwischen einem "nicht bekannt"-Nullwert und einem "nicht vorhanden"-Nullwert unterscheiden kann, ohne dass man etwa ein weiteres boolean-Attribut "Wert X bekannt" hinzufügen muss, welcher immer dann überflüssig ist, wenn X nicht NULL ist. --RokerHRO 22:38, 3. Jan. 2008 (CET)
- Sehe das so wie RokerHRO. Der Artikel verweist ja darauf, dass angeblich Codd eben diese Unterscheidung auch vornimmt. Leider fehlt die entsprechende Referenz/Quelle hierzu. Hab gesucht, finde sie aber nicht. Sollte meines Erachtens aber eingefuegt werden. -- Kaisemar 19:12, 25. Dez. 2009 (CET)
- Falls du en:Codd's 12 rules meinst, da steht nur, dass er fordert, dass die Datenbank überhaupt Nullwerte kennt, nicht verschiedene Typen von Nullwerten. --RokerHRO 21:12, 25. Dez. 2009 (CET)
NULL in SQL-Datenbanken
[Quelltext bearbeiten]Mal abgesehen davon das "SQL-Datenbanken" ein unglücklich gewählter Begriff ist ("in relationalen Datenbanken" wäre wesentlich besser) stört mich das gewählte Beispiell. Die Erfassung von CDs und Büchern in einer Tabellen ist kein Beispiel für ein natürliches Auftreten der verschiedenen NULL-Typen, sondern ein Beispiel für katastrophales Datenbankdesign. Ein korrektes Beispiel wäre z.B. eine Buchtabelle mit Author und Co-Author Spalten in einer Datenbank ohne Author-Tabelle (weil ausser dem Namen nichts erfasst werden soll). Nicht jedes Buch hat einen Co-Author, daher kann hier NULL stehen. Dies kann aber entweder bedeuten das es tatsächlich keinen gibt (don't care), oder aber dass ihn einfach niemand eingetragen hat (don't know). (nicht signierter Beitrag von 212.89.216.96 (Diskussion) 21:29, 17. Aug. 2012 (CEST))
Wortherkunft?
[Quelltext bearbeiten]Nil kommt vom lateinischen "nihil"; ein lateinisches Nil gibt es meine Erachtens nicht. Siehe auch: https://de.wikipedia.org/wiki/Nil_%28Begriffskl%C3%A4rung%29 --Peter2 (Diskussion) 09:14, 14. Jan. 2014 (CET)
- Hmmm. Ich bin kein Lateinexperte. Aber beispielsweise der Online-Pons sagt zum Thema, dass „nil“ aus „nihil“ kontrahiert sei, also eine Kurzform. Somit ist es schon ein lateinisches Wort. --j ?! 11:01, 14. Jan. 2014 (CET)
- OK, überzeugt. --Peter2 (Diskussion) 08:10, 15. Jan. 2014 (CET)
'' is null
[Quelltext bearbeiten]In SQL ist ein leerer String NULL, genauso wie in anderen Sprachen eine leere Zahl Null ist. Oracle Database treats a character value with a length of zero as null. Die wenigsten Sprachen haben einen String Datentyp. Eine Sprache mit einem String Datentyp müsste auch einen leeren String als NULL behandeln, da auch eine leere Zahl NULL ist. Eigentlich kann die ganze Sache mit den Leerem String auch raus, weil ein nicht existierendes Auto auch keine Farbe hat. --Arcudaki Disk. 11:58, 16. Mär. 2014 (CET)
- Oracle macht es so und widerspricht damit dem SQL-Standard:
- „In case you didn’t know, empty String (also known as null string)(") and NULL are considered the same in Oracle. This is not ANSI standard and is a real gotcha for developers coming from other databases, where they are different.“ [2]
- Das hat aber nichts damit zu tun, ob die Sprache einen "eingebauten" String-Datentyp hat oder nicht. --RokerHRO (Diskussion) 17:50, 16. Mär. 2014 (CET)
- Oracle ist da tatsächlich nicht sauber. Bei Sprachen die keinen eingebauten String als Typ haben ergibt sich die Frage nach dem Nullwert aber nicht: Dann ist der String (bei OO Sprachen) eine Instanz die halt befüllt, leer oder nicht da sein kann. In C (oder C++) gibt's übrigens auch keine NULL Wertdarstellung für Zahlen (int, float u.s.w.). Somit ist Oracle da fast eingängiger als der Standard, wenn man eine Zahl mit der Länge 0 als NULL intepretiert dann sollte ja auch eine Zeichenkette mit Länge 0 NULL sein. N.B: Interessant wäre ja ein "Vergleich" NaN mit NULL.... --Arcudaki Disk. 11:10, 17. Mär. 2014 (CET)
- 1) Okay, hätten wir das mit SQL also geklärt.
- 2) Kommen wir zu der von dir aufgestellten Behauptung, dass sich "eingebaute Datentypen" in einer Sprache bezüglich NULL-Werten stets anders verhalten müssen als benutzerdefinierte Datentypen: Ich sehe nicht, wieso das der Fall sein sollte. In Sprachen wie Java, wo man benutzerdefinierte Datentypen nur über Objektreferenzen ansprechen kann, haben diese immer einen möglichen NULL-Wert, nämlich die
null
-Referenz. Das sieht in anderen Sprachen jedoch nicht immer so aus. Und – wie du schon zu recht anmerkst – sind NaN-Werte bei IEEE-Gleitkommatypen in vielerlei Hinsicht ähnlich zu NULL-Werten. Gleitkommazahlen sind jedoch i.d.R. eingebaute Datentypen in den meisten Programmiersprachen. - 3) Was meinst du mit "Zahlen der Länge 0"?
- --RokerHRO (Diskussion) 22:22, 17. Mär. 2014 (CET)
- und .net bzw. C# nullable Types; Typen, die NULL-Werte zulassen...
- und nicht instanziierte Objekte
- alles Nullen sag ich nur... (nicht signierter Beitrag von 95.91.232.214 (Diskussion) 20:17, 13. Apr. 2014 (CEST))
- Oracle ist da tatsächlich nicht sauber. Bei Sprachen die keinen eingebauten String als Typ haben ergibt sich die Frage nach dem Nullwert aber nicht: Dann ist der String (bei OO Sprachen) eine Instanz die halt befüllt, leer oder nicht da sein kann. In C (oder C++) gibt's übrigens auch keine NULL Wertdarstellung für Zahlen (int, float u.s.w.). Somit ist Oracle da fast eingängiger als der Standard, wenn man eine Zahl mit der Länge 0 als NULL intepretiert dann sollte ja auch eine Zeichenkette mit Länge 0 NULL sein. N.B: Interessant wäre ja ein "Vergleich" NaN mit NULL.... --Arcudaki Disk. 11:10, 17. Mär. 2014 (CET)
NIL "einerseits"
[Quelltext bearbeiten]Ich kenne mich mit wiki-software nicht aus, wollte aber kurz darauf hinweisen, dass im Abschnitt zu NIL entweder ein "andererseits" fehlt oder ein "einerseits" zu viel vorhanden ist. (nicht signierter Beitrag von 2001:638:50C:9055:200E:8FFF:FE1F:CA40 (Diskussion | Beiträge) 13:32, 3. Dez. 2014 (CET))
- Danke! Hättest ruhig auch gleich selbst Hand anlegen können, siehe hier, wie es geht. Beste Grüße --Chricho ¹ ² ³ 15:26, 3. Dez. 2014 (CET)
Apostel?
[Quelltext bearbeiten]Was ist das für ein bullshit? Wieso gerade Apostel? Gibt es keine anderen Leute, die irgendwas Zitierbares verfaßt haben als irgendwelche blöden Apostel? Die Verständnis des Beispieles setzt voraus, daß man erstens weiß, was ein Apostel ist und zweitens, wie viele Apostel es gab oder gibt. Im erzkatholischen Allgäu mag das zum Allgemeinwissen gehören, aber es gibt auch noch andere Landstriche in D und Leute, die euren komischen Kult nicht teilen wollen. Und nein, ich würde auch keine Koranverse nehmen, falls jetzt einer damit kommt. Im übrigen ist das ganze Beispiel komplett an den Haaren herbeigezogener Unfug. Kein Mensch würde eine Tabelle so aufbauen und den Wert "13" als Nullwert nehmen. Das Ganze ist einfach nur dämlich. (nicht signierter Beitrag von 89.246.191.55 (Diskussion) 00:07, 7. Aug. 2015 (CEST))
Nil in Scala
[Quelltext bearbeiten]Im Abschnitt Verschiedene Repräsentationen des Nullwertes steht: "Einige Programmiersprachen (beispielsweise Pascal, LISP, Smalltalk, Ruby, Objective-C, Lua, Scala) verwenden die Bezeichnung nil, anstatt Null oder null. Nil"
Abgesehen vom überflüssigen Komma ist dies nicht richtig. In Scala gibt es sowohl Nil als auch null und Null - es wird aber nicht Nil anstatt null oder Null verwendet. Stattdessen steht jeder dieser Bezeichner für ein unterschiedliches Konzept. Siehe auch: http://blog.sanaulla.info/2009/07/12/nothingness/ (nicht signierter Beitrag von 62.143.62.194 (Diskussion) 12:53, 4. Sep. 2015 (CEST))
Null - Historischer Hintergrund fehlt
[Quelltext bearbeiten]Was ich mich die ganze Zeit beim durchlesen frage ist, wie kam es dazu das man Referenzvariablen die kein Objekt anzeigen, mit "null" angezeigt werden, also wie kam es dazu das "null" zu nennen? 188.110.12.38 21:16, 26. Apr. 2018 (CEST)
- Einen historischen Hintergrund kann ich nicht geben (obwohl es ihn selbstverständlich gibt). Aber einen logischen: Unter den RAM-Adressen zeigte die 0 früher immer auf geschützte Betriebssystemdaten und niemals auf irgendwelche Benutzerdaten. Es gibt zwar viele andere Adressen, die das auch tun. Aber da man nur eine davon braucht und die immer dieselbe sein soll(te), hat man sich auf den NULL-Zeiger geeinigt. Nicht ganz so klar ist das bei den Zeichenketten mit der Nullterminierung, da NUL als Zeichen manchmal sehr wohl in Benutzerdaten gebraucht wird und man dann diese Konvention nicht nehmen kann. Wenn es aber geht, ist es eine sehr bequeme Methode die Länge einer Zeichenkette zu spezifizieren. Wenn auch eine mit Fallstricken bei der Performanz, indem die Suche nach der NUL in vielen Bilbliotheksfunktionen implizit drinsteckt. --Nomen4Omen (Diskussion) 17:34, 5. Mai 2018 (CEST)