Mais um caso de
Não é de todo culpa das pessoas aprenderem errado a programar, tá cheio de exemplo ruim.
As pessoas precisam ser mais questionadoras sobre o que encontram na internet. Ainda bem que existem Stack Overflow, Reddit, Quora, e o Tabnews para as pessoas entenderem melhor alguma coisa. Sempre torcendo para ter alguém que saiba como realmente funciona para explicar o correto, como aconteceu aqui.
Só lembrando que um int
poderia ter números além da tabela ASCII, e isso poderia ser um problema, dá certo quando se sabe que ele está dentro da faixa de valor que pode ser impresso adequadamente.
Também lembrando que o que você vê na tela não são números, são representações textuais do número. Da mesma forma que não existem números decimais e binários, só existem números. O que dá para fazer é ter uma representação textual em notação decimal ou binária. O printf()
só faz a representação textual aparecer, de acordo com o formatador escolhido. E o %c
é a representação do número usando a tabela ASCII.