なぜ3番目の記号がwに変更されているのかわかりません。これは非常に奇妙な表記です(3番目の記号である理由はわかりますが、どのように機能するのかわかりません)。
using namespace std;
char napis[] = "ALICE";
char& which(int n){
return napis[n];
}
int main(){
which(2) = 'w';
cout << napis << endl;
return 0;
}
なぜ3番目の記号がwに変更されているのかわかりません。これは非常に奇妙な表記です(3番目の記号である理由はわかりますが、どのように機能するのかわかりません)。
using namespace std;
char napis[] = "ALICE";
char& which(int n){
return napis[n];
}
int main(){
which(2) = 'w';
cout << napis << endl;
return 0;
}
真剣に本を手に入れなさい。
which()
配列の3番目の要素への参照を返します。which(2) = ...
その参照によって参照される変数に値を割り当てることによって。
しかし、それが実際にどのように機能するかを理解するには、参照が何であるかを理解する必要があります-それはあなたが得るべきその本で説明されています。
文字列「ALICE」は文字の配列であり、配列はインデックス0から始まるため、2番目のインデックスは文字列の3番目の文字です。
また、charのコピーではなく参照を返します。これが、値を変更すると文字列が変更される理由です。