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

C语言中字符数组只能存放字符串?... C语言中字符数组只能存放字符串? 展开
 我来答
八哥说科技
高粉答主

2019-09-25 · 分享科技资讯,共享科技生活
八哥说科技
采纳数:113 获赞数:78620

向TA提问 私信TA
展开全部

不是的,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')。

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

ghosthn2007
2012-09-26 · TA获得超过117个赞
知道小有建树答主
回答量:236
采纳率:0%
帮助的人:106万
展开全部
肯定不是啊,字符数组只是用char 声明的一个连续存储单元,至于里面存什么你自己看办噻,可以存字符串,也可以存一字节数据,甚至你可以存两字节四字节等数据。只是你存的是什么卖的时候就要怎么读
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
poseidon_k
2012-09-20 · TA获得超过2580个赞
知道小有建树答主
回答量:1223
采纳率:0%
帮助的人:313万
展开全部
不是的,char型的大小是一字节,字符数组也是字节数组,不管什么类型只要大小是一字节的数据都可以存放在字符数组中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cpucash
推荐于2017-11-25 · TA获得超过1584个赞
知道小有建树答主
回答量:1457
采纳率:66%
帮助的人:969万
展开全部
字符数组和字符串的唯一区别是
字符串必须有\0结束
但字符数组可以没有
没有的情况只有一个,就是字符吧数组所有的空间都占用了

可能你不明白,举例说一下
申请了一个数组,a[3],有三个元素的位置
那么当三个字符都填充到这三个单元的时候,就是
如xyz三个字符
a[0]='x',a[1]='y',a[2]='z'
那么a这个数组将没有\0的空间
这样是可以的
但是要是用字符串处理函数,如puts,strcpy等函数的时候,这样的数组是不能当字符串来处理的,因为没有\0这个结束符,所有可能有很多乱码出现,这是正常的
因为这些函数需要\0来判断字符串的结束位置,但是这样的数组没有\0,所以这些函数处理这样的数组时,判断结束不准确,会出现乱码
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qufulin750
2012-09-20 · TA获得超过178个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:224万
展开全部
放什么都可以, 对于c来说, 字符数组就是一段数据, 可以强制转换为任意类型的数据, 不过初学者不建议这样做, 因为这样操作不当的话很肯能会引起程序崩溃.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式