返回数组名???

D1000 2012-02-25 06:42:30
char name[]="xiaoming";

char *GetName()const
{
return name ;
}

我不明白了,return name 难道不是返回字符串“xiaoming”吗? 为什么返回值类型是指针类型呢
...全文
182 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
muyi66 2012-02-27
  • 打赏
  • 举报
回复
直接返回整个数组会很麻烦,速度低效率差,不符合C语言高效特点。所以,需要返回这些东西时都是采用返回指针的方式。
自信男孩 2012-02-27
  • 打赏
  • 举报
回复
char *GetName()const
{
return name ;
}

改函数的返回类型跟它所定义的函数是吻合的。
lily0628 2012-02-27
  • 打赏
  • 举报
回复
数组名字就是数组的首地址
ofsct 2012-02-27
  • 打赏
  • 举报
回复
数组名其实就是字符串的首地址,return "xiaoming"返回的是一个指针类型,也就是"xiaoming"这个字符串的首地址,即返回name也是返回其首地址
pathuang68 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 d1000 的回复:]
char name[]="xiaoming";

char *GetName()const
{
return name ;
}

我不明白了,return name 难道不是返回字符串“xiaoming”吗? 为什么返回值类型是指针类型呢
[/Quote]

因为return "xiaoming"返回的就是"xiaoming"这个字符串的首地址,返回name也是返回其首地址。
bluewanderer 2012-02-27
  • 打赏
  • 举报
回复
char name[] = "1234";

template <class T>
struct A
{
typedef T &ref_type;
};

auto GetName() -> A<decltype(name)>::ref_type
{
return name;
}


貌似想达到目的得这么麻烦...
qwer_boo 2012-02-27
  • 打赏
  • 举报
回复
name这个名字代表一个实际的地址,即"xiaoming"这个字符串的首地址,所以返回类型为char *;
sghdls 2012-02-27
  • 打赏
  • 举报
回复

GetName 函数返回类型是指针
c87527124 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 rabbitlbj 的回复:]

数组名 其实就是一个地址
[/Quote]++
steven30832 2012-02-27
  • 打赏
  • 举报
回复
这个name就是“xiaoming”的地址,返回的地址由一个指针指向,就可以用那个指针来访问该地址的内容了。
无芒 2012-02-27
  • 打赏
  • 举报
回复
数组名是指向 数组首元素的指针

你的数组是char类型的 所以~~
龙行天下之Sky 2012-02-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 rabbitlbj 的回复:]

数组名 其实就是一个地址
[/Quote]
字符数组用做字符串时,数组名就是字符串
RabbitLBJ 2012-02-25
  • 打赏
  • 举报
回复
数组名 其实就是一个地址
W170532934 2012-02-25
  • 打赏
  • 举报
回复
返回字符串很难达到,只有返回字符串所在的地址,所以就返回字符串的首地址--指向字符串的指针。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧