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
![](https://images.gutefrage.net/media/default/user/14_nmmslarge.png?v=1551279448000)
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.
![](https://images.gutefrage.net/media/user/Nube4618/1576863216029_nmmslarge__0_0_720_720_633abd509342c2405db11f04215551c2.png?v=1576863216000)
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, 🐱
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
Ahh danke, nur noch ne kleine Frage warum ist in dem time(0), überhaupt eine 0?
![](https://images.gutefrage.net/media/user/ranger1111/1664398651580_nmmslarge__0_0_300_300_9a4334409e63f908baa4b0bff88a688f.jpg?v=1664398652000)
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