哪个对字符串文字更好, 标准字符串还是字符数组?
我的意思是说常量字符串,比如说
const char name[] = "so"; //or to use
const string name = "so";
最佳答案
对于字符串文字,并且仅对于来自文字的字符串常量,我会使用 const char[]
。 std::string
的主要优点是它有免费的内存管理,但这不是字符串文字的问题。
它是文字的实际类型,它可以直接用于任何需要旧 C 样式空终止字符串或 C++ 字符串(隐式转换开始)的 API。您还可以通过使用数组而不是指针来获得编译时大小的实现。
现在,在定义函数接口(interface)时,即使打算传入常量,我也更喜欢 std::string
而不是 const char*
,如后一种情况大小丢失,可能需要重新计算。
根据我自己的经验。我已经习惯了在每次调用日志库(使用可变参数)时为带有信息/错误消息的文字字符串编写 .c_str()
。
关于c++ - 使用 const char[] 或 const std::string 哪一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2099731/