En C, ¿puedo inicializar una cadena en una declaración de puntero de la misma manera que puedo inicializar una cadena en una declaración de matriz de caracteres?

¿Estas dos líneas de código logran el mismo resultado? Si tuviera estas líneas en una función, ¿se almacena la cadena en la pila en ambos casos? ¿Hay una razón sólida por la que debería usar uno sobre el otro, aparte de no tener que declarar el terminador nulo en la primera línea de código?

char  s[] = "string";
char* s   = "string\0";

Respuestas a la pregunta(3)

Su respuesta a la pregunta