przypisywanie char do referencji int i const int referencja w C ++

Zauważyłem, że przypisanie achar do aconst int& kompiluje, ale przypisuje go doint& daje błąd kompilacji.

char c;
int& x = c;    // this fails to compile
const int& y = c;    // this is ok

Rozumiem, że nie jest to dobra praktyka, ale jestem ciekawy, dlaczego tak się dzieje.

Szukałem odpowiedzi, szukając „przypisywania do referencji innego typu”, „przypisywania char do referencji int” oraz „różnicy między referencją const a referencją inną niż stała” i natrafiłem na wiele przydatnych postów (int vs const int & , Dziwne zachowanie podczas przypisywania znaku do zmiennej int , Konwertuj char na int w C i C ++ , Różnica między referencją referencyjną i stałą jako parametrem funkcji?), ale wydaje się, że nie zajmują się moim pytaniem.

Przepraszam, jeśli już wcześniej odpowiedziałem.

questionAnswers(3)

yourAnswerToTheQuestion