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
The first one is constant, the second isn't. std::string is a class type and implements many useful functions and methods for string manipulation, making it much easier and user-friendly. The c-style 'strings' with char pointers are difficult to control, manipulate and often cause errors, but don't have the overhead the std::string has. Generally it's better to stick to the std::strings cause they're easier to maintain.