Somewhat oddly, C treats character constants as type int rather than type char. For example, on an ASCII system with a 32-bit int and an 8-bit char, the code
char grade = 'B';
represents 'B'
as the numerical value 66 stored in a 32-bit unit, but grade winds up with 66 stored in an 8-bit unit.
Please explain this lines.