記錄一下自己將string作為參數傳遞的結果。
(自己感覺與int等基本類型無異。)
1. string 以引用形式傳遞
#include <iostream>
#include<string>
using namespace std;
void change_string(string& s)
{
char c = s[0];
for(int i=1; i<s.length(); i++)
{
s[i-1]=s[i];
}
s[s.length()-1]=c;
}
int main()
{
string str;
cin >> str;
cout << str << endl;
change_string(str);
cout << str <<endl;
return 0;
}
輸入:
ABCD
輸出:
ABCD
BCDA
說明在調用函數中的修改同樣改變了主函數中變量str的值。
2.string 以形參方式傳遞
將chang_string 中的參數類型由string& 改為 string,代碼如下:
void change_string(string s)
{
char c = s[0];
for(int i=1; i<s.length(); i++)
{
s[i-1]=s[i];
}
s[s.length()-1]=c;
}
輸入:
ABCD
輸出:
ABCD
ABCD
總體來看,c++ string類的參數傳遞好像與int等基本類型的參數傳遞一樣,同時也沒什么不正常之處。但是網上遍地都是:不要使用string作為參數傳遞。對此很是困惑,還望哪位大佬解釋一下。
原文鏈接:https://blog.csdn.net/yhsyde/article/details/108701592