通常,我会std::string
从函数返回 a,因为返回 aconst char*
需要调用者提供输出内存缓冲区,并且该缓冲区不可调整大小。
const char*
但是如果它来自字符串文字,则返回有效吗?
const char* generate_c_string() {
return "ABC";
}
这样做(如果有效)可能会更快,因为我不需要动态分配内存来构造std::string
.
它可能是有效的,因为它const char* x = "ABC";
是有效的。是否有来自 C++ 标准的参考证明其有效性?