Warum ist in dem Befehl eine NULL?
Programmiersprache C
srand((unsigned int)time(NULL));
srand((unsigned int)time(0));
Beide Befehle funktionieren, die Frage ist:
Was ist der unterschied zwischen der 0 und der NULL.
Bedanke mich für jede hilfreiche Antwort die ich kriege.
3 Antworten
0 ist das Integerliteral 0, das in diesem Fall implizit als Pointer vom Typ time_t behandelt wird.
NULL ist üblicherweise nichts weiter als
#define NULL ((void*)0)
Es ist also inhaltlich absolut identisch.
NULL heisst, das Feld oder die Variable hat keinen Inhalt, ist leer. 0 heisst, das der Inhalt den Wert 0 hat.
Woher ich das weiß:Berufserfahrung – Jahrzehnte IT Erfahrung, Experte für Kryptowährungen, 🐱
Ahh danke, nur noch ne kleine Frage warum ist in dem time(0), überhaupt eine 0?
0 ist der Wert 0. NULL ist der Null-Pointer, ein Zeiger, der ins NICHTS zeigt. Der zeugt auf due Speicheradresse 0.
Woher ich das weiß:Studium / Ausbildung – Informatik studiert und mit PCs & Technik beschäftigt