关于指针和局部变量问题
char* get(void)
{
char* str={ "abcd "};
return str;
}
int _tmain(int argc, _TCHAR* argv[])
{
char* val=get();
cout < <val < <endl;
return 0;
}
这个指针str可以从局部函数中返回正确的值原因是什么。是因为他是指向一个固定的字符串吗?
[解决办法]
是的。
字面字符串都保存在静态区中。
[解决办法]
是的.const类型的分配空间不是在堆栈当中,而是静态的,所以它并不在堆栈还原的时候消除.