在这两种情况下,字符数组myword是一个大小为字符型6元素声明:5个字符组成的“你好”,加上最后一个空字符(“0”),它指定序列的结尾,在第二种情况下,当使用双引号(“它将被自动添加)。
请注意,我们在这里讨论的是初始化一个字符数组,目前正在申报,而不是分配给他们的价值观后,(一旦他们已经宣布)。事实上,因为字符串字面值是规则排列,它们有相同的限制,因为这些,不能被分配的值。
表达式(一次myword已经被声明为以上),如:
2
3
4
myword[0] = 'B';
myword[1] = 'y';
myword[2] = 'e';
myword[3] = '\0';
以空终止字符序列平面阵列中使用C语言来表示字符串类型(这就是为什么他们也被称为c-strings)。在C++中,尽管标准库定义了字符串的特定类型(字符串类),不过,以空终止字符序列平面阵列(c-strings)是一个代表在语言的字符串自然的方式;事实上,字符串字面值还总是产生零终止字符序列,而不是字符串对象。
标准库中,两种形式的字符串(c-strings和图书馆的字符串)共存,大多数功能要求的字符串重载的支持。
例如,CIN和法院支持null终止序列,它们可以直接提取CIN或插入cout,就像琴弦。例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// strings and NTCS:
#include <iostream>
#include <string>
using namespace std;
int main ()
{
char question1[] = "What is your name? ";
string question2 = "Where do you live? ";
char answer1 [80];
string answer2;
cout << question1;
cin >> answer1;
cout << question2;
cin >> answer2;
cout << "Hello, " << answer1;
cout << " from " << answer2 << "!\n";
return 0;
}