定义
字符串常量是由一对双括号引起的字符序列。例如"C language"、"student"、"123"等都是合法的字符串常量。
字符串常量和字符常量的区别:
字符常量由单引号括起来,字符串常量由双括号括起来。
'C'
"China"
字符常量只能是单个字符,字符串常量则可以含零个或多个字符。
可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在C语言中没有相应的字符串变量,但是可以用一个字符数组来存放一个字符串常量。
Str[6] = "China";
字符常量占一个字节的内存空间。字符串不像其他数据类型具有固定的长度,不用字符串是不等长的,因此,字符串的存储不光需要存储其起始位置,还应该记载其结束位置。字符串常量占的内存字节数等于字符串中字符数加1,增加的一个字节中存放字符
' '
(ASCII码为0),这是字符串结束的标志。如字符串常量"China"
中实际上有六个字符,分别是'C'
、'h'
、'i'
、'n'
、'a'
、' '
。注:字符常量
'A'
和字符串常量"A"
虽然都只有一个字符,但是在内存中的情况不同。如以下代码程序:
#include <bits/stdc++.h> using namespace std; int main() { char a = 'C'; string b = "C"; printf("字符'c'的size:%d ", sizeof(a)); printf("字符串%"C"的size:%d ", sizeof(b)); }
代码运行的结果是:
字符'c'的size:1 字符串%"C"的size:32
字符数组与字符串
在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。(注:在C++中对于字符串有类string
可以通过引用#include <string>
来直接使用string
新建字符串变量。具体内容在本文最后进行讲解)字符串是以