O que é um caractere nulo?
Um caractere nulo na programação de computadores é um caractere com o valor zero. É diferente do número zero, que faz parte do conjunto de caracteres padrão impresso. Nulo é na verdade um caractere de controle com o índice zero. É usado para indicar que uma variável, classe ou ponteiro está vazio, indefinido ou não inicializado. Um nulo também é usado na linguagem de programação C para marcar o final de uma sequência de caracteres.
O caractere nulo originalmente era um de uma série de caracteres de controle especiais usados para se comunicar com hardware periférico, como impressoras ou unidades de fita. O significado original de null era instruir um dispositivo a não fazer nada. À medida que a tecnologia se tornou mais sofisticada, os caracteres de controle foram necessários menos para a interface com dispositivos externos. O nulo permaneceu na maioria dos conjuntos de caracteres, no entanto, na posição zero.
Muitas linguagens de programação usam o caractere nulo para indicar que um valor não foi atribuído a uma variável, ponteiro ou classe. O valor de null é geralmente definido nas bibliotecas principais da linguagem de programação como o valor '/ 0', que se traduz em um único caractere em branco. Uma variável com o valor nulo não possui o valor zero. Zero é um código de caractere completamente diferente, portanto, testes de equivalência entre zero e nulo mostrarão um resultado falso. Isso ocorre por design, porque zero pode ser um valor válido para uma variável.
A linguagem de programação conhecida como C usa o caractere nulo com grande efeito para economizar espaço de memória. O caractere nulo é usado como o final de uma sequência de caracteres, também chamada de sequência terminada nula. Isso permite que o programa armazene uma string com a necessidade de apenas um byte extra para conter o terminador nulo. O caractere nulo não pôde ser exibido e não foi utilizado para nenhum outro propósito; portanto, este sistema funcionou bem.
Os idiomas que vieram após C começaram a usar nulo para inicializar novas variáveis e classes. A maioria das especificações de idioma realmente garante que as variáveis declaradas recentemente serão iguais a nulas. Da mesma forma, é possível atribuir às variáveis o valor nulo para indicar que elas não têm valor ou que não apontam para nenhum local de memória.
Certas linguagens orientadas a objetos podem usar o caractere nulo durante o processo de coleta de lixo. Se uma variável que contém uma instância de uma classe é definida como nula, os dados se tornam inacessíveis, a menos que de outra forma seja referenciada por outra variável. O mecanismo de coleta de lixo, que libera memória que estava sendo usada anteriormente, detecta os dados agora inacessíveis e os retorna ao pool de memória disponível. Atribuir explicitamente uma variável a nulo às vezes é considerado um estilo de programação ruim.