标题:关于函数返回值与指针为题。。一点自己点看法。。勿喷
取消只看楼主
C_596322153
Rank: 6Rank: 6
来 自:徽州
等 级:侠之大者
帖 子:182
专家分:466
注 册:2012-1-10
结帖率:100%
已结贴  问题点数:20 回复次数:0 
关于函数返回值与指针为题。。一点自己点看法。。勿喷
如下代码:
一、
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" 字符串常量 (字符串常量存在数据区只读存储区)所以能得到返回地址

说的不清楚 那位知道的可以 详细介绍下 内存存储的问题:先谢谢了
搜索更多相关主题的帖子: hello return 
2012-11-25 14:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-388358-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.484119 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved