compreensão c-'0 '

Eu estava tentando testar uma das funções K & R que usa c-'0 '. Para entender claramente eu escrevi um código de duas linhas como abaixo. Minha pergunta é por que está imprimindo "1". E o que o "valor numérico" realmente significa nesse contexto. Obrigado!

char c = 'a';
printf("%c",c-'0');

questionAnswers(7)

yourAnswerToTheQuestion