C++ string 作為形參與引用傳遞(轉)


記錄一下自己將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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM