Un carattere nullo nella programmazione del computer è un carattere con valore zero. È diverso dal numero zero, che fa parte del set di caratteri stampati standard. Null è in realtà un carattere di controllo con indice zero. Viene utilizzato per indicare che una variabile, una classe o un puntatore è vuoto, non definito o non inizializzato. Un null viene utilizzato anche nel linguaggio di programmazione C per contrassegnare la fine di una stringa di caratteri.
Il carattere null originariamente era uno di una serie di caratteri di controllo speciali utilizzati per comunicare con l’hardware periferico come stampanti o unità a nastro. Il significato originale di null era di istruire un dispositivo a non fare nulla. Man mano che la tecnologia diventava più sofisticata, i caratteri di controllo erano meno necessari per l’interfacciamento con dispositivi esterni. Il null è rimasto nella maggior parte dei set di caratteri, tuttavia, alla posizione zero.
Molti linguaggi di programmazione utilizzano il carattere null per indicare che un valore non è stato assegnato a una variabile, puntatore o classe. Il valore di null è spesso definito all’interno delle librerie principali del linguaggio di programmazione come il valore ‘/0’, che si traduce in un singolo carattere vuoto. Una variabile con valore null non ha valore zero. Zero è un codice carattere completamente diverso, quindi i test di equivalenza tra zero e null mostreranno un risultato falso. Questo è di progettazione, perché zero può essere un valore valido per una variabile.
Il linguaggio di programmazione noto come C utilizza il carattere null con grande efficacia per risparmiare spazio di memoria. Il carattere null viene utilizzato come fine di una stringa di caratteri, detta anche stringa terminata con null. Ciò consente al programma di memorizzare una stringa con la necessità di un solo byte in più per contenere il terminatore nullo. Il carattere null non può essere visualizzato e non è stato utilizzato per nessun altro scopo, quindi questo sistema ha funzionato bene.
I linguaggi successivi al C hanno iniziato a utilizzare null per inizializzare nuove variabili e classi. La maggior parte delle specifiche del linguaggio garantisce effettivamente che le nuove variabili dichiarate saranno nulle. Allo stesso modo, alle variabili può essere assegnato il valore null per indicare che non hanno alcun valore o che non puntano a nessuna posizione di memoria.
Alcuni linguaggi orientati agli oggetti possono utilizzare il carattere null durante il processo di Garbage Collection. Se una variabile che contiene un’istanza di una classe è impostata su null, i dati diventano irraggiungibili se non diversamente indicato da un’altra variabile. Il meccanismo di Garbage Collection, che libera la memoria precedentemente utilizzata, rileva i dati non raggiungibili e li restituisce al pool di memoria disponibile. L’assegnazione esplicita di una variabile a null è talvolta considerata uno stile di programmazione scadente.