How can you assign a character value to a integer type variable in C?

c, char, int

Solution

For historical reasons (mostly), character constants are of type `int` in C.

But even if they weren't, an initialization like

int num = 'a';

or an assignment like

num = 'a';

would still be perfectly legal. A value of any numeric type may be assigned to a variable of any (other) numeric type, and the value will be implicitly converted (which may involve a change of representation and/or a risk of overflow).

And `char`, along with its relatives `unsigned char` and `signed char`, are numeric types, specifically integer types.

Problem

In C, ``` ... int num = 'a'; ... ``` My question is simple. How can you assign a character such as '0', 'a', 'b' to an integer type variable without getting any type error in C language?

Original source