在C中,可以在声明中使用字符串文字,如下所示:
char s[] = "hello";
Run Code Online (Sandbox Code Playgroud)
或者像这样:
char *s = "hello";
Run Code Online (Sandbox Code Playgroud)
那么区别是什么呢?我想知道在编译和运行时的存储持续时间实际发生了什么.
在这里,我有两行代码
const char * s1 = "test";
char s2 [] = "test";
Run Code Online (Sandbox Code Playgroud)
这两行代码具有相同的行为,所以我看不出是否应该优先选择s1,s2反之亦然.除了s1和s2之外,还有使用方式std::string.我认为使用std :: string的方式是最优雅的.在查看其他代码时,我经常看到人们use const char *或者char s [].因此,我现在的问题是,我应该何时使用const char * s1或char s []或std::string?有什么区别,我应该在哪种情况下使用哪种方法?