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)