关于return的问题
#include<iostream>
using namespace std;
extern char test();
extern char *test1();
int main()
{
char b,*p3;
b=test();
cout<<b<<endl;
p3=test1();
cout<<p3<<endl;
system("SYSTEM");
}
char test()
{
char ptr[]={'a','b','c'};
char *p1=ptr;
return *p1;//正确的
}
char *test1()
{
char p2[]="abcd";
return p2;//编译时有警告
}
"return 不能返回指向栈内存的指针或者引用,因为该内存在函数体结束时被自动销毁"
对于这句话应该怎么理解呢, return *p1;也是存放在栈上的啊,还有如果返回一个值也是在栈上的啊,为什么就可以,请高手帮帮忙,谢谢大家