C++语言程序设计

字符数组是数组元素存放字符的一维数组，c++中用字符数组处理字符串。例如：
char s[10];
定义了一个有10个元素的字符型数组。
字符数组也可以在定义时初始化：
char str[16] = {'T', 'h', 'i', 's', ' ', 'i', 's', ' ', ' a', ' ', 's', 't', 'r', 'i', 'n', 'g'};
对数组的各元素分别赋予字符值。赋初值后的情形如下图所示

| 图6-7

如果花括号中提供的初值个数超过数组长度，将产生错误，如果初值个数少于数组长度时，剩余的元素自动用空格补足，例如
char c[10] = {'C',' ','P','r','o','g','r','a','m'};
下图给出了数组C赋初值后的状态。

| 图6-8

字符数组的长度也可以用初值个数来确定，例如：
char str[] = {'T','h', 'i', 's', ' ', 'i', 's', ' ', ' a', ' ', 's', 't', 'r', 'i', 'n', 'g'};
字符数组str的长度为16。
用一个个字符常量来初始化字符数组很麻烦，其实，可以用一个字符串常量来初始化字符数组：
char str[] = {"This is a string"};
这时我们定义了一个长度为17的数组。为什么是17呢？编译器在字符串常量的最后自动增加了一个字符结束标志'\0'。这时的内存情况如下图所示：

| 图6-9

初始化的形式还可以进一步简化成：
char str[] = "This is a string";
这种形式使用得更多。
当然你也可以用字符串常量来初始化一个已明确指出长度的字符数组，如
char str[10] = "string"
数组str在内存中的形式如下图所示：

| 图6-10