char是C/C++整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed,但char在标准中是unsigned,编译器可以实现为带符号的,也可以实现为不带符号的,有些编译器如pSOS的编译器,还可以通过编译开关来指定它是有符号数还是无符号数。
描述:高级编程语言数据类型
定义:计算机编程语言(c、c++、java、
VFP等)中可容纳单个字符的一种基本数据类型。
而且关于char还有一个特殊的语言就是char *,它在C/
C++中有专门的语义,既不同于signed char *,也不同于unsigned char *,专门用于指以'\0'为结束的字符串
char *p="abcd";
是可以通过编译的
但如果用
signed char *p="abcd";
还是
unsigned char *p="abcd";
都是不能通过编译的。
关于这些在C/C++的语言标准或一些经典书籍如The C++ Programing Language中都有很清楚的说明。
判断编译器的默认char符号
#include<stdio.h>
int main(void)
{
char c=-1;
if(c<200)
{ printf("signed\n"); }
else
{ printf("unsigned\n"); }
return 0;
}