下面是两段代码
#include <iostream>
using namespace std;
char * get();
int main(int argc, char *argv[])
{
char *p;
p=get();
cout<<"函数外面的"<<p<<"结束"<<endl;
return 0;
}
char * get(){
char a[]="123";
cout<<"函数里面的"<<a<<"结束"<<endl;
return a;
}
//p没有任何东西
#include <iostream>
using namespace std;
char * get();
int main(int argc, char *argv[])
{
char *p;
p=get();
cout<<"函数外面的"<<p<<"结束"<<endl;
return 0;
}
char * get(){
char *a="123";
cout<<"函数里面的"<<a<<"结束"<<endl;
return a;
}
//p里的字符和a一样
为什么?
我只知道字符数组名是常量,而指针是变量。
但是为什么两个返回回来之后效果不一样呢?
两段代码中的p和数组名的地址,p和指针的地址都是一样的。
就是p和数组名那段代码,会把东西清空, 不大能理解