
字符数组:用来存放字符型数据的数组叫作字符数组,字符数 组中的每个元素存放一个字符。

例如:char c[10];
表示定义了一个字符型一维数组,数组名为c,该数组中的数组元素共有10个(可以存放10个字符),系统将分配10个字节的连续存储空间。
c[0]='I'; c[1]=' '; c[2]='a'; c[3]='m'; c[4]=' ';
c[5]='h'; c[6]='a'; c[7]='p' ; c[8]='p'; c[9]='y';


例如: char b[3][4] ;
表示定义了一个字符型二维数组b,有3*4个数组元素,系统将分配12个字节的连续存储空间。



字符数组的初始化
字符数组的初始化就是在定义数组的同时对数组元素赋以初值。
一维字符数组初始化的实现方法:
1.逐个字符赋给数组中各元素。
例如: char c[10]={'I', ' ','a', 'm', ' ', 'h', 'a', 'p', 'p', 'y'};
2.如果定义数组时不初始化,则数组中各元素的值不可预知;如果初值个数大于数组长度,按语法错误处理;如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即'\0')。
例如: char c[10]={'c', ' ', 'p', 'r', 'o', 'g', 'r', 'a', 'm'};
3.如果提供的初值个数与预定的数组长度相同,在定义时可 以省略数组长度,系统会自动根据初值个数确定数组长度。
例如: char c[]={‘I’, ‘ ’,‘a’, ‘m’, ‘ ’, ‘h’, ‘a’, ‘p’, ‘p’, ‘y’};
4.直接将一个字符串常量初始化给一个一维字符数组。
例如: char c[12] = {"abcd1234567" } ;
或者: char c[12] = "abcd1234567" ;将双引号中的字符依次赋给各个数组元素,即数组元素c[0],c[1],……,c[10],c[11]的值分别为'a','b',…… '5','6','7','\0'。

1.逐个字符赋给数组中各元素。
例如:char a[3][4 ]={ '1' ,'2' ,'3' , '4','A' ,'B ', 'C' ,'D' ,'a' ,' b','c','d '} ;
2.分行赋值。
例如:char a[3][4]={ {' 1' ,' 2' ,' 3' , '4'} ,{'A' ,'B ', ' C' ,'D'} ,
{' a' ,' b','c','d '}} ;
也可以 char a[3][4] = { " 1234" ,"ABCD" ,"abcd" } ;
将第一个字符串常量中的字符依次赋给第一行的各个元素,将第二个字符串常量中的字符依次赋给第二行的各个素,……即数组元素a[0][0],a[0][1],……,a[2][2],a[2][3]的值分别为 ‘1’,‘2’,‘3’,‘4’,‘A’,‘B’,‘C’,‘D’,‘a’,‘b’, ‘c’,'d'。 但每行的最后都有字符串结束标志'\0'。


