Mod*_*e77 5 c++ pointers return lifetime
#include <iostream>
const char* fun()
{
const char* x = "abc";
std::cout << "x = " << x << "\n";
return x;
}
int main(int arc, char** argv)
{
const char* y = fun();
std::cout << "y = " << y << "\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在我的机器上运行它给出:
x = abc
y = abc
Run Code Online (Sandbox Code Playgroud)
在fun()
,x
(一个局部变量)被分配字面创建本地一个字符串的地址,然而,当该函数返回时,该数据指向y
是作为通过指向同一x
即使x
超出范围.
有人可以详细解释这里发生了什么吗?
归档时间: |
|
查看次数: |
543 次 |
最近记录: |