奇怪的const char *函数返回值行为

时间:2018-11-27 23:24:09

标签: c++

这是整个程序:

#include <iostream>
#include <cstdlib>
#include <string>

using namespace std;

const char* str_c = "\0";

const char* function() {
    string str_cpp = "John Doe";
    str_c = str_cpp.c_str();
    cout << str_cpp.c_str() << "\n";
    cout << str_c << "\n";
    return str_c;
}

int main() {
    cout << function() << "\n\n";
    system("PAUSE");
    return 0;
}

这就是它的返回内容:

  • John Doe
  • John Doe
  • ╠╠╠╠╠╠╠╠

我不知道为什么str_c指向的字符串突然丢失了。是因为其内容是在function()内创建的,因此使用寿命较短?

0 个答案:

没有答案