C语言 字符数组的初始化
字符数组的初始化形式和一维数组类似,可以通过为每个数组元素指定初值字符来实现。例如:
char c[5]={'h ','e ', '1 ', '1 ', 'o'};
这样分别把初值提供的5个字符分配给字符数组中的5个元素c[0]~c[4]。
也可以对字符数组中部分元素赋初值。例如:
char c[5]={'h ', 'e ', '1 '};
从图中可以看出,如果不对字符数组初始化,字符数组元素的值是不确定的。而如果对字符数组初始化后,即便是部分赋值,没有得到赋值的元素中的内容也不再是确定的,而是‘\0’的形式,如下所示。
c[0] c[1] c[2] c[3] c[4]
h e I \0 \0
同一维数组初始化一样,如果提供的初值个数与数组的长度相同,可在定义时省略数组长度,系统将根据初值个数为字符数组分配内存空间。例如:
char c[]={'h', 'e ', '1 ', '1 ', 'o'};
则字符数组c的长度由系统自动确定为5。
同整型、浮点型数组一样,字符数组也可以定义和初始化二维数组,形式为:
char ch2[3][5]={{'c'},{'c','+','+',},{'c','#'}};
二维字符数组多用于多个字符串的处理。可以看出这样的初始化形式对于二维字符数组来说,太麻烦,所以在后面将介绍用字符串初始化二维字符数组。
点击加载更多评论>>