社区
C++ 语言
帖子详情
这样写可以吗?
248406869
2004-10-15 11:00:10
const string f()
{
char buffer[]="XXXXXXXX";
return buffer;
}
这样写可以吗?
...全文
194
21
打赏
收藏
这样写可以吗?
const string f() { char buffer[]="XXXXXXXX"; return buffer; } 这样写可以吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
freefalcon
2004-10-16
打赏
举报
回复
to: 沧海一粟
好,什么时候有时间我也跟你去java版混
to: UPCC
不好意思啊,我不是故意的,:),我每天都忍不住要上csdn,上了csdn就忍不住想回答问题
ipkdkfyygy
2004-10-15
打赏
举报
回复
我个人认为不对
原因是:因为定义的函数的返回值的类型是字符串常量,而buffer类型又是一个地址值
会出现类型不匹配的错误。
不知道我说的是否有理,还望各位指正,谢谢!!
umbrella1984
2004-10-15
打赏
举报
回复
会自动转换成返回类型的类型,
爱饮四坛
2004-10-15
打赏
举报
回复
freefalcon是对的,只要不用指针,是可以的.
rtdb
2004-10-15
打赏
举报
回复
我说不好,并没说不对
这样写暗藏了类型转换,
很容易被别人误解,不是么? :)
pacman2000
2004-10-15
打赏
举报
回复
呵呵,心宇讲的对。
kobefly
2004-10-15
打赏
举报
回复
to
freefalcon(心宇—小小菜鸟想高飞)
哦
不好意思
没看到返回类型
对于C++实在不是很了解
呵呵
sharkhuang
2004-10-15
打赏
举报
回复
堆栈的问题
freefalcon
2004-10-15
打赏
举报
回复
to 科比
用string是可以的,因为在构造string时,它会自己分配存储区用来存储字符串
kobefly
2004-10-15
打赏
举报
回复
我就是想返回里面的字符串以后使用。比如说我把int型的数据转换成字符串
const string f(int i)
{
char buffer[100];
sprintf(buffer,"%d",i);
return buffer;
}
你说不好,为什么不好?
-------------------------------------
这个是肯定不行的
因为你存在栈中
出了函数就释放了
参见
http://community.csdn.net/Expert/topic/3407/3407002.xml?temp=.3424036
kobefly
2004-10-15
打赏
举报
回复
i当然不可以,函数一返回,buffer 就释放掉了。
要用new在堆上申请内存并赋值呀
-----------------------------------------
其实不是这样的
这个问题
已经讨论过很多遍了
是静态字符串,存放在全局变量区
楼主的做法是可以的
参见
http://community.csdn.net/Expert/topic/3407/3407002.xml?temp=.3424036
248406869
2004-10-15
打赏
举报
回复
rtdb(东临碣石)
我就是想返回里面的字符串以后使用。比如说我把int型的数据转换成字符串
const string f(int i)
{
char buffer[100];
sprintf(buffer,"%d",i);
return buffer;
}
你说不好,为什么不好?
freefalcon
2004-10-15
打赏
举报
回复
1。
const string f()
{
char buffer[]="XXXXXXXX";
return buffer;
}
可以,因为你返回的是string,它会用buffer构造出一个对象,并且const不需要
2.
const char* f()
{
char buffer[]="XXXXXXXX";
return buffer;
}
不可以,因为buffer是栈上分配的一个临时量,函数退出就释放了
3.
const char* f()
{
char* buffer ="XXXXXXXX";
return buffer;
}
可以,因为字符串"XXXXXXX"位于常量字符串区,在程序运行过程中总有效,但它是只读的,所以必须加上const
Poville
2004-10-15
打赏
举报
回复
i当然不可以,函数一返回,buffer 就释放掉了。
要用new在堆上申请内存并赋值呀
rtdb
2004-10-15
打赏
举报
回复
不好,说说你想要做什么?
248406869
2004-10-15
打赏
举报
回复
我个人感觉没什么问题,听听大家的意见。
Dong
2004-10-15
打赏
举报
回复
因为有freefalcon(心宇)的存在,害得我到现在都没有星星的,记得10.1的时候见不到他,我拿了800分!而且只是几天而已的。
海阔天空的创业与创作
2004-10-15
打赏
举报
回复
freefalcon(心宇)还在c++里面混啊,高手啊
我现在跑到java区了,^_^
freezingfire
2004-10-15
打赏
举报
回复
3.
const char* f()
{
char* buffer ="XXXXXXXX";
return buffer;
}
可以,因为字符串"XXXXXXX"位于常量字符串区,在程序运行过程中总有效,但它是只读的,所以必须加上const
------------------------------------------------------------------
话虽如此,这样总是不好的编程习惯,应当养成永远不返回栈上变量内容的习惯。
nwpulipeng
2004-10-15
打赏
举报
回复
呵呵,终于搞清楚了,哈哈
抢分了
加载更多回复(1)
优秀的程序员真的不
写
注释吗?
我在很多地方看到这样一个观点,“请停止
写
注释,因为只有烂的代码才需要注释。”这个观点非常巧妙,它让我想起了孟子的一句话,“杨氏为我,是无君也;墨氏兼爱,是无父也。无父无君,是禽兽也。” 动不动就骂别人是“禽兽”,我总觉得有点不妥,这很不符合孟子的浩然之气啊。有些大牛也有孟子这样的觉悟,如果有人要他给自己的代码加上注释,就好像是对他的一种侮辱:“我的代码
写
得这么优雅,你难道看不懂吗?注释是多余的!” 我必须得承认,每个程序员都应该有一颗追求“优雅”的心,力争自己的代码更易阅读和理解——不只是针对机器,还有我
程序员为什么要
写
博客?怎么
写
博客?
今天就来和大家聊聊关于
写
博客的一些事情,首先声明哦,这都是我自己
写
博客那么久以来的一些想法,可能有些地方不够成熟,但我还是想着分享出来,万一对你有些帮助呢? 为什么这里要加上程序员?不是程序员就不适合
写
博客吗?那倒不是,我不了解其他行业怎样,但是我知道,至少程序员
写
博客是对自己非常有帮助的一件事情,而且,很多前辈给编程小白的建议大多都有
写
写
博客吧! 对了,我这里要讲的是,为什么程序员要
写
博客啊? 我们人呐,其实都是蛮物质的,对自己没啥好处的事情一般都不怎么愿意干,而且都喜欢短期收益高的事情,所以啊,很多.
Java8:接口里面可以
写
实现方法吗【可以】 、接口可以多继承吗【可以】
问: 接口里面可以
写
方法吗? 答: 当然可以啊,默认就是抽象方法。 . 问: 那接口里面可以
写
实现方法吗? 答:不可以,所有方法必须是抽象的。
做网站必须会
写
代码吗?
现在很多初学者或者初创企业老板都想做自己做网站,可是一提到做网站,大家不约而同的都会想到
写
代码、编程、图像设计,排版布局,复杂的网站编辑工具等等。那是不是就是说不会
写
代码,就不能做出网站呢?完全没代码知识的用户要怎么可以做网站呢?下面我给大家介绍一个不用
写
代码就可以做网站的方法。建议你可以去搜索一下自助建站这样的工具,你可以横向比较一下各家的功能和特点。我这里以用过的阿里云速成美站为例来做站,不懂技术也能自己动手制作。提供专业的服务器,数据库和安全维护有专人维护后台系统,让用户无后顾之忧。可以从众多PC+手
今天我要
写
Code吗?
“Manager还能不能
写
Code?”如果你刚从技术开发职位升迁到管理职位,这会是一个在相当长一段时间内非常纠结你的问题。如果你之前技术做得还不错、算是个“高手”,你应该会更加纠结一点,也许每天都在挣扎着:“今天我要
写
Code吗?” 在深入探讨这个问题之前,先跟大家分享一下我的个人经历吧~ 我在S公司工作已经满5年了。刚加入这个公司的时候,我的职位是Sr. Software Enginee
C++ 语言
64,639
社区成员
250,578
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章