C++怎么把string类型的数据当做引用类型来传递。
答案:2 悬赏:20
解决时间 2021-03-02 21:48
- 提问者网友:长安小才冯
- 2021-03-01 22:53
#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;
}
这么直接值传递交换前后都是一样的,怎么才能实现引用传参呢。。
最佳答案
- 二级知识专家网友:狙击你的心
- 2021-03-02 00:14
其实问题不在于string是值类型还是引用类型,是你不知道方法内部的参数的赋值与交换,是不影响外部参数的 里面的ab赋值和外面的xy赋值是没有任何关系的,所以你的道德x和y不应该输出成你想象的结果,即使是换成int这种值类型也一样 想要达到你的效果,可以把参数换成ref,比如aaa(ref string a ,ref string b)这样调用的话,a和b的修改会影响到外面的变量
全部回答
- 1楼网友:情战凌云蔡小葵
- 2021-03-02 01:22
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;
我要举报
大家都在看
推荐资讯