关于char类型
请问,我在一个本书上看到这么一段话,“char有三种不同的类型:普通char,unsigned char,signed char。虽然char有三种不同的类型,但只有两种表达方式,可以用unsigned char和signed char表示。使用哪种char表示方式有编译器决定。”
这段话,不太理解。。。求高手指点。
[解决办法]
在编译器选项中能够选择char的类型是否为带符号的!~属性-配置属性-C\C++语言-语言-默认char无符号-是或否!
[解决办法]
默认机制
好比一般的编译器把 char等同于unsigned char
因为在里面都是四位的可以通过类型转换得到 不过还是手工定义好一点 避免编译器的不一样而造成问题
[解决办法]
当写int的时候,即是signed int,int是signed int的略写,各编译器均如此,此为标准
但当写char的时候,标准没有规定是signed char的略写
char到底实现为有符号还是无符号,由编译器决定
语法检查时,作为三种类型来对待
即使明知是有符号的,也不能直接转换
void func(char*){}int main(){ char *c; signed char *sc; unsigned char *uc; func(c); func(sc); // error func(uc); // error return 0;}