我这里有两行代码
const char * s1 = "test";
char s2 [] = "test";
两行代码的行为相同,因此我看不出是否应该更喜欢
s1
还是s2
。除了s1和s2之外,还有使用std::string
的方法。我认为使用std::string的方法最优雅。在查看其他代码时,我经常看到人们要么使用const char *
,要么使用char s []
。因此,我的问题现在是,何时应该使用const char * s1
或char s []
或std::string
?它们之间有什么区别,应在哪些情况下使用哪种方法?
"abc"
,是'const char数组',即const char[N]
(N为包括空终止符的字符串大小)。至少目前在C和C++中都是如此。补充一下Kos上面的评论,字符串字面值具有'静态存储期'(持续整个程序的运行时间)。正如标准或此答案所引述的。 - starriet