Una variabile di tipo int può contenere solo dati di tipo int... se tu assegni ad un int un char quest'ultimo viene convertito in un int e non c'è modo di sapere che prima della conversione era un char.