中易网

C++怎么把string类型的数据当做引用类型来传递。

答案:2  悬赏:20  
解决时间 2021-03-02 21:48
#include
#include

using namespace std;

int swap(string a,string b)
{
string c = a;
a = b;
b = c;
}

int main(int argc, char *argv[])
{
string a = "abc";
string b = "def";

cout<<"交换前:"<
swap(a,b);

cout<<"交换后"<
return 0;
}
这么直接值传递交换前后都是一样的,怎么才能实现引用传参呢。。
最佳答案
其实问题不在于string是值类型还是引用类型,是你不知道方法内部的参数的赋值与交换,是不影响外部参数的 里面的ab赋值和外面的xy赋值是没有任何关系的,所以你的道德x和y不应该输出成你想象的结果,即使是换成int这种值类型也一样 想要达到你的效果,可以把参数换成ref,比如aaa(ref string a ,ref string b)这样调用的话,a和b的修改会影响到外面的变量
全部回答
scanf是c语言,string 是类(c++)。不能直接赋值吧 可以这样: char buf[1024]; string s; scanf("%s",buf); s=buf; 最好不要混合使用c和c++的io库。直接用cin #include #include using namespace std; string s; cin >> s;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
c++用重载并编写一个变量数值要是输入一个简
如何将一台iphone的资料复制到另一台iphone
波醍咖啡Petite cafe这个地址在什么地方,我
重生无心拥得帝王宠
随经济的发展,尹进所在的
美国ESP脑潜能研究院地址在什么地方,想过去
爵士岛咖啡怎么去啊,有知道地址的么
一个英文单词应该对应汉语的一个字还是一个词
昆明摆地摊卖衣服要注意些什么
我想给儿子他们买一套家居,看了几家觉得太子
严姓字辈排行
起台沟怎么去啊,有知道地址的么
苏州有没有到义乌东阳西站的汽车
大使和公使级别不一样吗?
a、letter、soon、write、he、says、he、that
推荐资讯
BLOVES定制婚戒,贵吗?
万鼎寄卖行地址有知道的么?有点事想过去
java方法需要返回一个对象
为什么我的英雄联盟说是统一登陆错误
外校人怎么办四川师范大学的饭卡?(43路公交
还有比中通快递更烂的快递吗
拜托了,发我答案好吗
把一个棱长6dm的正方形钢块,锻造成横截面积为
兴乔温馨绿园在什么地方啊,我要过去处理事情
大学城到天河客运站坐地铁要多久
观看生理卫生教育观后感800字
为什么孩子一出生就哭
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?