-1

なぜ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;
}
4

2 に答える 2

3

真剣に本を手に入れなさい。

which()配列の3番目の要素への参照を返します。which(2) = ...その参照によって参照される変数に値を割り当てることによって。

しかし、それが実際にどのように機能するかを理解するには、参照が何であるかを理解する必要があります-それはあなたが得るべきその本で説明されています。

于 2012-06-23T12:20:32.193 に答える
1

文字列「ALICE」は文字の配列であり、配列はインデックス0から始まるため、2番目のインデックスは文字列の3番目の文字です。

また、charのコピーではなく参照を返します。これが、値を変更すると文字列が変更される理由です。

于 2012-06-23T12:21:23.107 に答える