c++ primer第32页指出
和其他类型不同,char有三种不同的类型:普通char、unsigned char、signed char。虽然char有三种不同的类型,但是只有两种表示方式。可以使用unsigned char或者signed char表示char类型。使用哪种char类型标识方式由编译器决定。
理解起来有点费解啊,于是乎网上搜了下,为什么有三种不同的类型,又为什么有两种表示方式?原来是这样的:在程序中直接写个int , 默认是signed int , 但是在程序中写个char ,就没有默认了,具体是signed char 还是unsigned char ,取决于编译器的设置。
对于vc、x86上的gcc,char被处理成signed char。 如果想测试你的编译器,可以用这段代码
char a =-1;
printf("a=%d",a);
如果结果是 -1,则当前编译器将char 处理成signed char; 如果结果是255,则当前编译器将char处理成unsigned char。
浙公网安备 33010602011771号