atribuindo char à referência int e à referência const int em C ++

Notei que atribuir umchar para umconst int& compila, mas atribuindo a umint& dá um erro de compilação.

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

Eu entendo que não é uma boa prática fazer isso, mas estou curioso para saber o motivo pelo qual isso acontece.

Eu tenho procurado por uma resposta, procurando por "atribuição de referência de tipo diferente", "atribuindo char a uma referência int" e "diferença entre referência const e não const referência", e se deparou com um número de posts úteis (int vs const int & , Comportamento estranho ao atribuir um char a uma variável int , Converter char em int em C e C ++ , Diferença entre referência e referência const como parâmetro de função?), mas eles não parecem estar abordando a minha pergunta.

Minhas desculpas se isso já foi respondido antes.

questionAnswers(3)

yourAnswerToTheQuestion