Por que adicionar um '0' a um dígito int permite a conversão para um caractere?

Eu já vi exemplos disso em todo o lugar:

int i = 2;
char c = i + '0';
string s;
s += char(i + '0');

No entanto, ainda não vi uma explicação do porquê adicionar o zero permite a conversão.

questionAnswers(6)

yourAnswerToTheQuestion