C语言中字符数组只能存放字符串?

C语言中字符数组只能存放字符串?

不是的,C语言中字符数组既可以保存字符,又可以保存字符串

字符数组本意就是是指用来存放字符数据的数组。字符数组的元素是字符类型的。字符数组用于存放字符或字符串。

C语言中字符数组的一般形式为: char 数组名[数据长度] 。例如:char a[10]; a[0]='0'; a[1]=' 1'; a[2]='2'; a[3]='3'; a[4]='4'; a[5]='5'; a[6]=' 6'; a[7]='7'; a[8]='8'; a[9]='9'; 就定义了a为字符数组,包含10个"0"到“9”的字符元素。

因此,C语言中字符数组不单单只能保存字符串。

扩展资料:

字符数组的初始化:

字符数组的初始化与数值型数组初始化没有本质区别。但它除了可以逐个给数组元素赋予字符外,也可以直接用字符串对其初始化。

用字符常量逐个初始化数组。例如:char a[8]={'i','l','o','v','e','y','o','u'};把8个字符依次分别赋给c[0]~c[7]这8个元素。

如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。如果花括号中提供的初值个数(即字符个数)大于数组长度,则出现语法错误。如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即'\0')。

参考资料来源:百度百科-字符数组

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-26
肯定不是啊,字符数组只是用char 声明的一个连续存储单元,至于里面存什么你自己看办噻,可以存字符串,也可以存一字节数据,甚至你可以存两字节四字节等数据。只是你存的是什么卖的时候就要怎么读
第2个回答  2012-09-20
不是的,char型的大小是一字节,字符数组也是字节数组,不管什么类型只要大小是一字节的数据都可以存放在字符数组中。
第3个回答  推荐于2017-11-25
字符数组和字符串的唯一区别是
字符串必须有\0结束
但字符数组可以没有
没有的情况只有一个,就是字符吧数组所有的空间都占用了

可能你不明白,举例说一下
申请了一个数组,a[3],有三个元素的位置
那么当三个字符都填充到这三个单元的时候,就是
如xyz三个字符
a[0]='x',a[1]='y',a[2]='z'
那么a这个数组将没有\0的空间
这样是可以的
但是要是用字符串处理函数,如puts,strcpy等函数的时候,这样的数组是不能当字符串来处理的,因为没有\0这个结束符,所有可能有很多乱码出现,这是正常的
因为这些函数需要\0来判断字符串的结束位置,但是这样的数组没有\0,所以这些函数处理这样的数组时,判断结束不准确,会出现乱码本回答被网友采纳
第4个回答  2012-09-20
放什么都可以, 对于c来说, 字符数组就是一段数据, 可以强制转换为任意类型的数据, 不过初学者不建议这样做, 因为这样操作不当的话很肯能会引起程序崩溃.
相似回答