Благодаря %c
все они печатают символьный эквивалент аргумента.
printf("%c\n",0+'0');
Добавляет ноль к значению ASCII нулевого символа, которое равно 48: 48 + 0 = 48.
Попробуйте printf("%d\n", '0');
, чтобы получить значение ASCII.
printf("%c\n",1+'0'); // 1 + 48 = 49 which is the character `1`
printf("%c\n",0+'1'); // 0 + 49 which is again `1`
printf("%c\n",1+'1'); //left as an exercise