It seems you mean C.
In C character literals (called in C character constants) have type int
. So sizeof( 'A' )
is equivalent to sizeof( int )
and yields usually 4
.
From the C Standard (6.4.4.4 Character constants)
10 An integer character constant has type int. The value of an integer
character constant containing a single character that maps to a
single-byte execution character is the numerical value of the
representation of the mapped character interpreted as an integer. The
value of an integer character constant containing more than one
character (e.g., 'ab'), or containing a character or escape sequence
that does not map to a single-byte execution character, is
implementation-defined. If an integer character constant contains a
single character or escape sequence, its value is the one that results
when an object with type char whose value is that of the single
character or escape sequence is converted to type int.
While sizeof( char )
is alwasy equal to 1.
From the C Standard (6.5.3.4 The sizeof and alignof operators)
4 When sizeof is applied to an operand that has type char, unsigned
char, or signed char, (or a qualified version thereof) the result is
1....