C++ Primer 5th を読んでいるときに、次のようなコードに遭遇しました。
string s("some string");
if (s.begin() != s.end())
{
auto it = s.begin();
*it = toupper(*it);
}
itイテレータから string の最初の文字までの値を受け取りますs。その後、 によって大文字に変更されtoupper()ます。it逆参照できるのはどうしてですか?ポインターではなく、char 型の変数であるべきではありませんか?