定义:

char型数据是计算机编程语言中只可容纳单个字符的一种基本数据类型。

取值范围:

char : -2^7 ~ 2^7-1 ;
signed char: -2^7 ~ 2^7-1
unsigned char : 0 ~ 2^8-1

特别的有:

char还有一个特殊的语言就是char *,它在C/C++中有专门的语义,既不同于signed char *,也不同于unsigned char *,专门用于指以'\0'为结束的字符串。
还可以用char[]来表示字符串。

区别:char*是变量,值可以改变, char[]是常量,值不能改变。

char[] p表示p是一个数组指针,相当于const pointer,不允许对该指针进行修改。但该指针所指向的数组内容,是分配在栈上面的,是可以修改的。
char * pp表示pp是一个可变指针,允许对其进行修改,即可以指向其他地方,如pp = p也是可以的。对于*pp ="abc";这样的情况,由于编译器优化,一般都会将abc存放在常量区域内,然后pp指针是局部变量,存放在栈中,因此,在函数返回中,允许返回该地址