Un carácter nulo en programación informática es un carácter con valor cero. Es diferente del número cero, que forma parte del conjunto de caracteres impresos estándar. Null es en realidad un carácter de control con índice cero. Se utiliza para indicar que una variable, clase o puntero está vacío, indefinido o no inicializado. Un nulo también se usa en el lenguaje de programación C para marcar el final de una cadena de caracteres.
El carácter nulo originalmente era uno de una serie de caracteres de control especiales utilizados para comunicarse con hardware periférico como impresoras o unidades de cinta. El significado original de nulo era instruir a un dispositivo para que no hiciera nada. A medida que la tecnología se volvió más sofisticada, se necesitaron menos caracteres de control para interactuar con dispositivos externos. Sin embargo, el nulo permaneció en la mayoría de los conjuntos de caracteres en la posición cero.
Muchos lenguajes de programación utilizan el carácter nulo para indicar que no se ha asignado un valor a una variable, puntero o clase. El valor de nulo a menudo se define dentro de las bibliotecas centrales del lenguaje de programación como el valor ‘/ 0’, que se traduce en un solo carácter en blanco. Una variable con valor nulo no tiene valor cero. Zero es un código de carácter completamente diferente, por lo que las pruebas de equivalencia entre cero y nulo mostrarán un resultado falso. Esto es por diseño, porque cero puede ser un valor válido para una variable.
El lenguaje de programación conocido como C usa el carácter nulo con gran efecto para ahorrar espacio en la memoria. El carácter nulo se utiliza como el final de una cadena de caracteres, también llamada cadena terminada en nulo. Esto permite que el programa almacene una cadena con la necesidad de solo un byte adicional para contener el terminador nulo. El carácter nulo no se pudo mostrar y no se usó para ningún otro propósito, por lo que este sistema funcionó bien.
Los lenguajes que vinieron después de C comenzaron a usar nulo para inicializar nuevas variables y clases. La mayoría de las especificaciones de lenguaje garantizan que las variables recién declaradas serán nulas. De manera similar, a las variables se les puede asignar el valor nulo para indicar que no tienen valor o que no apuntan a ninguna ubicación de memoria.
Ciertos lenguajes orientados a objetos pueden usar el carácter nulo durante el proceso de recolección de basura. Si una variable que contiene una instancia de una clase se establece en nula, los datos se vuelven inalcanzables a menos que otra variable haga referencia de otro modo. El mecanismo de recolección de basura, que libera la memoria que se estaba utilizando anteriormente, detecta los datos ahora inalcanzables y los devuelve al grupo de memoria disponible. La asignación explícita de una variable a nulo a veces se considera un estilo de programación deficiente.