интервал х; Таким образом, для переменной будет 2 байта памяти. Теперь, если я ввел 66 и поскольку scanf() с %d, 66 будет храниться в 2-байтовой памяти, потому что переменная объявлена как int.
Теперь в printf() с %c для отображения должны собираться данные только из памяти одного байта.
Но %c правильно отобразил B, получив правильные данные 66 из памяти для отображения.
Почему %c не может просто получить данные из одного байта?
int
должен иметь ширину минимум 16 бит, но может быть и обычно бывает шире.... - person ad absurdum   schedule 16.07.2017%c
получил свои данные из двух байтов?66
— это число, которое идеально помещается всего в один байт. Возможно, ваш%c
использовал этот один байт. Где доказательства использования двух байтов%c
??? Без этого вопрос не имеет никакого смысла. - person AnT   schedule 16.07.2017