关于字符串字符数组字符指针和字符指针返回值

原码:
#include
using namespace std;
char *inputa();
char *inputp();
int main()
{
char *p=inputa();
inputp();
cout< return 0;
}
char *inputa()
{
char str[20]="123";
cout return str;
}
char *inputp()
{
char *str="223";
cout return str;
}
![图片说明](https://img-ask.csdn.net/upload/201703/26/1490538889_292907.png)
改一下之后
int main()
{
char *p=inputa();
inputp();
cout return 0;
}
![图片说明](https://img-ask.csdn.net/upload/201703/26/1490538819_706945.png)
在第一个基础上另一种方法改一下
#include
using namespace std;
char *inputa();
char *inputp();
int main()
{
char *p=inputp();
cout<<inputa()<<","<<p<<endl;
return 0;
}
char *inputa()
{
char str[20]="123";
return str;
}
char *inputp()
{
char *str="223";
return str;
}
图片说明
希望能够有大神给我讲解每次的变化是为什么
我知道的真的很乱

 int main()
 {
 char *p=inputp();      //返回的是指针字符地址。。
 cout<<inputa()<<","<<p<<endl;   //返回数组首地址。。
 return 0;
 }
 char *inputa()
 {
 char str[20]="123";
 return str; 
 }

局部函数返回的是指针地址。。。