请考虑以下代码:
const char* someFun() {
// ... some stuff
return "Some text!!"
}
int main()
{
{ // Block: A
const char* retStr = someFun();
// use retStr
}
}
在函数
someFun()
中,"Some text!!"
存储在哪里(我认为它可能在ROM的某个静态区域中),它的作用域生存期是多少?在整个程序中,
retStr
所指的内存会被占用,还是在A块退出后释放? 最佳答案
C++标准没有说明应该存储字符串文本。但它确实保证了它们的生命周期就是程序的生命周期。因此,您的代码是有效的。