In expression
return c - 'a' + 10;
I could think that 10 has type int and resulting value promoted
to the largest type. But I don't understand why in expression
where both of arguments have type char:
return c - '0';
I have resulting type int. It's very strange for me and looks
very buggy)