我们可以将char*传递给const字符串&?

See*_*ker 1 c++

以下代码在C++中是否可以接受?如果是这样,会发生什么?它是否创建临时字符串变量并传递其地址?

void f(const string& s) {
}
const char kJunk[] = "junk";
f(kJunk);
Run Code Online (Sandbox Code Playgroud)

Sea*_*ean 9

是的,这是可以接受的.编译器将调用string(const char *)构造函数并创建一个临时值,该临时值将s在调用期间绑定.当秋天f返回临时将被破坏.