学科分类
目录
C语言

字符数组

字符数组定义方式与整型数组类似,其语法格式如下:

char 数组名[数组大小];       //一维字符数组

在上述语法格式中,“char”表示数组中的元素是字符数据类型,“数组名”表示数组的名称,它的命名遵循标识符的命名规范,“数组大小”表示数组中最多可存放元素的个数。

定义字符数组的示例代码如下:

char ch[6];

上述代码定义了一个一维字符数组,数组名为ch,数组的长度为6,最多可以存放6个字符。字符数组的初始化和整型数组一样,可以在定义字符数组的时候完成,示例代码如下:

char c[5]={'h','e','l','l','o'};

上述代码的作用是定义了一个字符数组,数组名为c,数组包含5个字符类型的元素,该字符数组在内存中的状态如图1所示。

图1 字符数组c在内存中的状态

字符数组的访问方式与整型数组类似,都是通过索引实现的,例如访问上面定义的字符数组c中的元素,代码如下:

c[0];  //访问字符数组c中的第1个元素,值为h
c[1];  //访问字符数组c中的第2个元素,值为e
c[2];  //访问字符数组c中的第3个元素,值为l

image-20200521114315895脚下留心:字符数组初始化时注意事项
字符数组的初始化很简单,但是要注意以下几点:
(1)初始项不能多于字符数组的大小,否则编绎器会报错,提示初始值设定项太多。示例代码如下:

char str[2] = {'a', 'b', 'c'}; //错误写法 

(2)如果初始项值少于数组长度,则空余元素均会被赋值为空字符(’\0’)。

str数组在内存中的表现如图8-2所示。

char str[5] = {'a', 'b', 'c'};  //后面剩余的两个元素均被赋值为'\0'

str数组在内存中的表现如图2所示。

图2 str数组在内存中的表现

(3)如果没有指定数组大小,则编绎器会根据初始项的个数为数组分配长度。

char str[] = {'a', 'b', 'c'};  //与char str[3] = {'a', 'b', 'c'};相同

(4)二维字符数组的初始化与整型二维数组类似。

char str[2][2] = {{'a', 'b'}, {'c', 'd'}};
点击此处
隐藏目录