关于函数返回值与指针为题。。一点自己点看法。。勿喷
如下代码:一、
char *Func()
{
char ar[] = {"hello"};
return ar;
}
int main()
{
printf("%s",ar)
return 0;
}
/***********************************
报错:局部变量地址不可作为返回值,
************************************/
二、
char *Func()
{
char *ar = "hello";
return ar;
}
int main()
{
printf("%s",ar);
return 0;
}
/**********************************/
今天在书上看到的跟不懂得分享下,
一、局部变量存在 栈里 生存期 定义到 函数的结束 所以 return 其地址 很显然 得不到
二、虽然 在函数内定义指针ar但是将其初始化为 "hello" 字符串常量 (字符串常量存在数据区只读存储区)所以能得到返回地址
说的不清楚 那位知道的可以 详细介绍下 内存存储的问题:先谢谢了