char的有无符号类型

char 分为有符号性(signed)和无符号型(unsigned)两种:

Ø若是signed型,就意味着取值范围为[-128,127];

Ø若是unsigned型,就意味着取值范围为[0,255];

C语言中我们通常直接用类型char,但是它究竟是被当做signed型还是unsigned型,由编译器决定。

C语言允许我们在char前面加上关键字signed或者unsigned,这样,无论在编译器中被当做signed还是unsigned,都会按照前面加的这个关键字来决定。

例如:假设我们现在使用的编译器,把char当做signed来看到,则

char c1;

signed c2;

unsigned c3;

c1和c2的取值范围都是[-128,127],而c3的取值范围则是[0,255]。

所谓取值范围,是指其值在这个范围之内时,会被正确处理,超出这个范围就会发生溢出。但在这个范围之内,并不意味着它就是可打印字符。这点不要混淆。

原文地址:https://www.cnblogs.com/liangliangdetianxia/p/3985581.html