C 语言中并不存在字符串这个数据类型,而是使用字符数组来保存字符串。那么,字符数组就一定是字符串吗?
unsigned char carr[]={'L','O','V','E'};
//***************************************
unsigned char *arr[]="LOVE";
在第一个字符数组carr [ ]中的:LOVE 占4个字节
而第二个字符串 *arr[ ]中的:LOVE要占5个字节;
那是因为:
对于字符串 *arr[ ]编译时会自动在末尾增加一个 null 字符(也就是’\0’,用十六进制表示为 0x00);而对于 carr,则不会自动增加任何东西。
字符和字符串的区别
字符用单引号,字符串用双引号。在c1=‘a’;中,‘a’是字符常量,必须用单引号。"a"表示字符串,包含两个字符,一个是’a’,一个是’\0’。
通常由8个二进制位(一个字节)来表示一个字符。