Просто запустите эту программу и объясните вывод последней строки, почему она печатает "g" вместо "f". Здесь мое намерение состоит в том, чтобы узнать, почему он показывает возвращаемое значение предыдущих функций?
#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;
}