Warum werden Zeiger standardmäßig nicht mit NULL initialisiert?

Kann jemand bitte erklären, warum Zeiger nicht auf initialisiert sindNULL?
Beispiel:

  void test(){
     char *buf;
     if (!buf)
        // whatever
  }

Das Programm würde das if because nicht betretenbuf ist nicht null.

Ich würde gerne wissen, warum in welchem ​​Fall eine Variable mit aktivem Papierkorb benötigt wird, insbesondere Zeiger, die auf den Papierkorb im Speicher verweisen.