Actually the initial assignment will not work as expected:
char ch = 'â';
Overflow occurs here, and gcc will warn you about it. Technically, this behavior is undefined, although for a very common single-byte type, charbehavior is predictably enough - it's a simple integer overflow. Depending on your default character set, this is a multibyte character; I get decimal 50082 if I print it as an integer on my machine.
In addition, the comparison is unacceptable, again, because it is chartoo small to hold the compared value, and again a good compiler will warn about this.
ISO C wchar_t, , , ( -ASCII) , . , , ASCII, .