Bienvenidos sean a este post, hoy hablaremos sobre las diferencias entre ellas.
Cuando una variable de este tipo no contiene un caracter imprimible se lo considera como vacio, veamos a algunos tipos de estas definiciones:
char* cadena[10] = { '\0' };
En este caso esta vacio porque pasamos directamente el caracter terminador o centinela, recuerden que este equivale a un valor nulo, veamos otra posibilidad:
char* cadena[10] = { 0 };
Al igual que vimos cuando hablamos de arrays, este tipo de inicialiacion o definicion tendria todos las posiciones con el valor de 0 por lo tanto tambien esta vacio y por ultimo tenemos esta otra opcion:
char* cadena[10] = { '\0', 'h','o','l','a','\0' };
En este caso tambien es vacio porque mas alla de la informacion que pasemos al estar en la posicion 0 el caracter terminador dara por terminada la cadena y el resto sera completamente ignorado por el lenguaje.
En cambio cuando un array o un apuntador del tipo string contiene un valor nulo, lo que equivale a nada, se las denomina como cadenas nulas, veamos como se puede definir:
char cadena[];
Este es el ejemplo mas simple dado que solamente reservaremos un espacio en memoria, en este caso para un char, y obtendremos una direccion de memria donde esta dicha reserva, veamos otra posibilidad:
char* ap_cadena = NULL;
En el segundo caso tenemos un apuntador a una cadena pero no tendra una direccion valida dado que por el momento apunta a NULL hasta que le asignemos una direccion valida, si quieren saber mas sobre el NULL les recomiendo visitar este post.
Con todo lo comentado hasta aqui podemos decir que las cadenas vacias no son igual que las cadenas nulas, esto es asi porque las cadenas vacias al menos tendran un caracter como es el terminador, \0 o NUL, pero en cambio las cadenas nulas apuntan a nada (NULL), esto sera principalmente importante para cuando definamos o usemos funciones con cadenas validas o inclusive vacias, y aqui entran las cadenas nulas porque pueden derivar en errores al ser utilizadas en estas.
En resumen, hoy hemos visto la diferencia entre cadenas vacias y cadenas nulas, como se componen cada una, como se diferencian y porque debemos tener cuidado el manejar una u otro tipo de variable, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
