関数の受け渡しでC++文字列ポインタがどのように機能しているのか理解できません。ポインタで関数を渡すC++文字列
void print(string str){
str+=" and sisters.";
}
int main(){
string s ="hello brother";
print(s);
cout<<s<<endl;
}
出力:
hello brother
と機能以下のために -
void print(string &str){
str+=" and sisters.";
}
int main(){
string s ="hello brother";
print(s);
cout<<s<<endl;
}
出力 -
hello brother and sisters.
同じ文字列オブジェクトを渡しているので、ポインタ "string & str"と "string str"の場合にポインタがどのように動作しているのか理解できません。
コードにポインタはありません。値渡しの参照渡しの問題です。参照渡しや値渡しのどちらを優先すべきですか?(http://stackoverflow.com/questions/4986341/where-should-i-prefer-pass-by-reference-or-pass- – songyuanyao
これは、書籍を読んだり、お気に入りのオンラインチュートリアルの5ページに行くことで簡単に答えられます。 – DeiDei