看到标题,有不少朋友会想:字符数组不也是数组吗?为什么要单独拿出来讲哩?莫非它是朵奇葩?
哈哈,确实,一起来认识一下这朵数组界的奇葩吧!
一、字符数组的定义、引用、初始化
大家好!我是字符数组,看我的名字就知道啦,我是由字符型元素构成哒! 我的定义方式和元素引用方式和一般数组相同哦,我们可是一家人哦!
|
char line [80];
这是定义了一个长度为 80 的一维字符数组。
char m [2] [3];
这是定义了一个 2 行 3 列的二维字符数组。
printf ("%c", line [2]);
这是在应用数组元素。
so easy!
字符的初始化方法可以分为两种:
(1) 将字符逐个赋给数组中的每个元素;
char c [5] = {'c', 'h', 'i', 'n', 'a'};
这是把5个字符分别赋给 c [0] ~ c [4] 这 5 个元素中。
(2) 直接用字符串常量给数组赋初值。
char c [6] = "china";
看到这个例子,又有好奇的小伙伴发问了:china 这不只有5个字符吗?为啥前面写着 6 ?
实验检验真知,让我们把 5 和 6 都运行一下:
当括号里面写成 5 时,程序就会被报错!
当括号里面写成 6 时,程序就会正常!
有些小伙伴的头上是不是出现了许多问号呢?
先别着急,下面小编就会把谜底揭开。
敲黑板!我们要知道:无论用以上哪种方法进行初始化,如果提供的字符个数大于数组长度,系统就会进行语法错误处理,比如上面的情况;如果提供的字符个数小于数组长度,则只会给前面几个元素赋值,剩下的自动设置为0,即 ’