首页 理论教育C语言字符数组的定义和初始化

C语言字符数组的定义和初始化

【摘要】:字符数组的初始化与一般数组的初始化类似,可以有完整赋值、部分赋值等情况。②使用字符串常量初始化字符数组。使用字符串常量对字符数组进行初始化时,系统会自动在末尾加上字符串结尾符号'\0',但定义的字符数组必须提供足够的长度。·如果没有指定字符数组的长度,系统自动指定为字符串常量中有效字符的个数+1。

1.字符数组的定义

用来存放字符数据的数组就是字符数组,字符数组中的每一个元素均存放一个字符。字符数组的定义方法与一般的数组定义方法类似,包括一维字符数组、二维字符数组等。

一维字符数组定义的一般形式为:

char 数组名[整型常量表达式];

二维字符数组定义的一般形式为:

char 数组名[整型常量表达式1][整型常量表达式2];

例如:char a[10];定义了一个一维字符数组a,可以存放10个字符。

又如:char b[3][20];定义了一个二维数组b,可以存放3个一维字符数组,每个一维字符数组又可以存放20个字符。

2.字符数组的初始化

字符数组初始化的方法主要有两种:使用单个字符常量序列和使用字符串常量数据。

①使用单个字符常量初始化字符数组。单个字符初始化时,将常量表中的字符依次赋值给对应的字符数组元素。

字符数组的初始化与一般数组的初始化类似,可以有完整赋值、部分赋值等情况。例如:

char a[5]={'c','h','i','n','a'};(www.chuimin.cn)

char b[10]={'c','','p','r','o','g','r','a','m','\0'};

对于字符数组a,由于最后没有'\0'字符,所以只能使用处理数组的方式进行处理;对于字符数组b,初始化数据字符序列最后有'\0'字符,所以既能够使用数组方式进行处理,也能够使用字符串方式进行处理。

②使用字符串常量初始化字符数组。使用字符串常量对字符数组进行初始化时,系统会自动在末尾加上字符串结尾符号'\0',但定义的字符数组必须提供足够的长度。在初始化时应该注意以下几点:

·字符串常量只需要提供有效字符数据。

·字符串常量不足以填满整个字符数组空间时系统会自动用'\0'字符填充。

·字符串常量数据可以使用花括号括住,也可以不使用花括号。

·如果没有指定字符数组的长度,系统自动指定为字符串常量中有效字符的个数+1。

下面是几个字符串常量初始化字符数组的示例:

char s1[80]={"New Year"};

char s2[80]="New Year";

char s3[]="New Year";    //此时字符数组的长度为9

与其他类型数组类似,字符数组名也是地址常量,字符数组不能整体操作。程序中任何试图修改数组名值的操作或者试图为数组整体赋值的操作都是错误的。