什么是常量?
常量又称为常数,是在程序运行过程中其值不能改变的数据,例如: -1,938等等。
常量有以下几种:整形常量
、实型常量
、字符型常量
、字符串常量
、符号常量
。
字符串常量
字符串常量又称为“字符串”,是用双引号括起来的零个或多个字符的序列。字符串中字符的个数称为字符串长度。若字符串长度为0(即一个字符都没有的字符串)称为空串。表示为""。例如"Thank you"、"Hello"等都是字符串常量,其长度分别为9和5(空格也是一个字符)。
如果反斜杠和双引号作为字符串中的有效字符,则必须使用转义字符,作为转义的 \ 符号,不计算其长度。
编译时自动在字符串末尾处加一个转义字符 \0 作为字符串的结束标志,即长度为n个字符的字符串占用n+1字节。需要注意的是在C程序中书写字符串常量时,不必自己加结束标志 \0。
C语言规定字符串中的字母是区分大小写的,所以 "s" 和 "S" 是不同的字符串。
例如,字符串 "Come" 在内存中的实际存储如下:
C | o | m | e | \0 |
---|
最后一个字符 '\0' 是系统自动加的,该字符串占用内存5个字节而不是4个字节。
例如,字符常量 'a' 在内存中的存储形式如下:
a |
---|
0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
---|
字符串"a"在内存中的存储形式如下:
a | \0 |
---|
0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
---|
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
---|
综上所述,字符常量与字符串常量是不同的,其区别在于:
1、定界符不同,字符常量使用单引号,而字符串常量使用双引号。
2、长度不同,字符常量的长度固定为1;而字符串常量的长度,可以是0,也可以是某个整数。
。
3、存储要求不同,字符常量存储的是字符的ASCII码值,在内存中只占用1字节;而字符串常量,除了要存储有效的字符外,还要存储一个字符串结束标志 '\0'。