Here I\'ve two lines of code
const char * s1 = \"test\"; char s2 [] = \"test\";
Both lines of code have the same behavior, so I cannot see
const char * s1 = "test"; char s2 [] = "test";
These two aren't identical. s1 is immutable: it points to constant memory. Modifying string literals is undefined behaviour.
s1
And yes, in C++ you should prefer std::string.
std::string