查看: 68|回复: 0

C++函数的返回值是const string& 是什么意思?

[复制链接]

3

主题

5

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2023-3-26 13:58:42 | 显示全部楼层 |阅读模式
如题,对比一下如下两个函数:
const string& getConst(){
        const string &a = "abcdefg";
        return a;
}

const string getConst(){
        const string &a = "abcdefg";
        return a;
}

请问第一个的返回值是什么意思?我试验过了,两个都不会报错,但一个打印出来是乱码,但也看不出是什么意思,好像不是地址,不知道是哈意思。
有大佬能解答一下吗?谢谢。

补充:
另外在问一句,函数开头返回值的修饰符“const”是不是没有必要?我试了一下,有没有它都无所谓啊,但是,当你接收这个函数的返回值时,你定义的变量就不能省略这个“const”了,否则直接报错。

如下所示:

string getConst(){
const string &a = "abcdefg";
return a;
}

int main(){
const string &a = getConst(); // 注意,这里的const不能省略,否则报错。
cout
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表