| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1458 人关注过本帖
标题:[求助]关于return返回值问题
只看楼主 加入收藏
paopao
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-9-1
收藏
 问题点数:0 回复次数:15 
[求助]关于return返回值问题

char *test ()
{
char ch[]="abcd";
return ch; //这样对吗?可以返回吗?
} //请问return可以返回哪些东东啊?请帮我详细讲解一下.谢谢各位!

[此贴子已经被作者于2006-9-6 12:00:11编辑过]

搜索更多相关主题的帖子: return 返回值 char abcd 
2006-09-06 11:06
aladdin
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-9-5
收藏
得分:0 
return的变量类型至少要和定义该函数时返回值的类型相同。
2006-09-06 11:21
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 
char *test ()
{
char ch[]="abcd";
return ch; //这样对吗?可以返回吗?不能返回指向栈内存的指针,P在函数调用结束时已经消失
}
2006-09-06 12:42
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
拜托2楼
这里char []与char *有什么区别么
3楼说的才是问题

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-09-06 14:53
aladdin
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-9-5
收藏
得分:0 
以下是引用song4在2006-9-6 14:53:06的发言:
拜托2楼
这里char []与char *有什么区别么
3楼说的才是问题

呵呵,在我发帖子的时候LZ的文章不是那样的。
我是今天11:20回的帖子,说了那个问题,所以LZ12点把帖子编辑了,改正了我说的问题,而3楼是12:40发了帖子指出了另一个问题,不知道我这样解释你能不能理解?


PS.想挑我毛病?还总学我说话,你心胸未免狭小了点吧~~

2006-09-06 16:14
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
我只不过为你不理解我意思瞎说感到惭愧
我这只不过稍微说一下你的态度

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-09-06 20:56
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
可以这样
const char *test ()
{
return \"abcd\"; //存储地址不是栈,函数结束,地址内容不变。
}


但不可以这样
char *test ()
{
char ch[]=\"abcd\";
return ch; //返回局部变量,那快内存在块结束后系统会回收回
//去的,那里就不是你应该访问的地方了
}

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-09-06 21:47
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

或许你也可以:
char *test ()
{
char *ch=new char[strlen("abcd")+1];
strcpy(ch,"abcd");
return ch;
}


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-09-06 21:49
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 

堆啊, 棧啊, 這些詞語很難理解,
記住作用域就好.

char *test ()
{
char ch[]="abcd";
return ch; //这样对吗?可以返回吗?
}

ch 是在 test { } 這個作用域的東西, 它就屬於這個作用域的, 作用域以外不應該再使用. ch 在進入作用域時開始, 離開作用域時結束.


原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-09-06 21:50
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
const char *test ()
{
return "abcd"; //存储地址不是栈,函数结束,地址内容不变。
}
这里也不是引用
难道函数返回时没有临时变量接受一下吗?

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-09-07 07:00
快速回复:[求助]关于return返回值问题
数据加载中...
 
   



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

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