-2
このプログラムを実行して、最後の行の出力で "f"の代わりに "g"を出力する理由を説明してください。私の意図は、以前の関数が値を返す理由を知ることです。以下のプログラムの出力を説明してください
あなたはによって生成された一時的な値に依存しているためである#include <iostream>
#include <string>
std::string f() {
return "f";
}
std::string g() {
return "g";
}
int main() {
const char * s = f().c_str();
std::cout << "s = " << s << std::endl;
std::cout << "g() = " << g() << std::endl;
std::cout << "s = " << s << std::endl;
}
c_str()の出力は、呼び出しごとに無効になります。どの変数を使用しているかにかかわらず、前の値に頼るべきではありません。 – user2525536