C语言数组的问题

一个字符型数组,我怎样区分这个数组是字符数组还是字符串数组呢?比如定义一个字符数组char c[6]={'a','b','c','d','e'},请问这个数组是字符数组还是字符串数组呢?
数组的知识说数组里面的初值不够的数组后面自动添加‘\0’结尾,可是这个字符型数组也是一样,它为了与字符相区别,所以会在结尾添加与上面的例子‘\0’一样的结尾符号作为数组的特殊标志,可是我到底该怎么区分一个数组是字符型数组还是字符串型数组呢?请举一个具体的例子说明,好吗?因为一个具体例子是最有说服力的,空说没有例子是没有意思的

非也非也!
兄弟!首先你要知道 字符串数组 就是 字符数组,而字符数组并不一定是 字符串数组。
例如char c[6]={'a','b','c','d','e'},数组c[6]中共6个元素,'a','b','c','d','e',才5个,当然后面C语言还给它加了一个0,即这个数组是以0结束的,所以它是字符串数组。
若char c[6]={'a','b','c','d','e','f'}这个数组不是以0结束的,所以它是字符数组;
char c[6]={"abcde"}等价于 char c[6]={'a','b','c','d','e'},是字符串数组。
char c[6]={"abcdef"}等价于
char c[6]={'a','b','c','d','e','f'},是 字符数组.
总之 字符串数组一定是以0(即\0,不是字符'0' 哦,是数字0)结束的!
还有问题吗?
嘿嘿!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-07-28
所谓字符数组指的是数组的每一个元素是是一个字符,声明形式很多种:
char test[]={"abcde"}
char test[]={'a','b','c','d','e'}
在字符数组的后面会添加上一个 '\0'

而字符串数组只数组里面每一个元素为一个字符串

char test[][] = {"abcde","edfrt","sdaews","sadad","wrasd"}

在字符串数组的每一个元素后面都会加上'\0'
第2个回答  2008-07-28
关注
第3个回答  2008-07-28
很简单 "xxxxxx" 用双引号的就是字符串 用单引号的就是字符 'A' 'B' 'C' 'D' 这就是C语言识别的问 单引号作为字符时 你多打几个去试试 他就报错了....

我想你看到 单引号 和双引号 就不用我举例子了吧 有个编译器 自己跑一下就知道了
而关于字符串在内存中\0 结尾很 也是用于区别的 内存中可不会告诉你那里是空格 在他看来 字符串 iloveyou 和 i love you 的区别就是 iloveyou\0 i\0love\0you\0 前者表示一个字符串 而后者表示3个
但是他们都可以存在 同一个字符数组里面 前提是放的下..

数组的知识说数组里面的初值不够的数组后面自动添加‘\0’结尾

这个应该是 char 的数组 char 在内存中只有一个字节

char a[50]就是50个字节 就好象有50个盒子 ,可放50个苹果,一个字符就是一个苹果.. 放入字符数少于定义空间数时 后面的多也也无所以 反之 问题就来了 大坝垮了是什么后果就不用我说了吧..
当数组没有初值时其实是很危险的 因为你在后面可能就调用到数组
你会说没有东西就是0咯..呵呵 你会这样想 上面的问题不就解决了吗?可以电脑不会 因为在那里连0都没有..... 无语吧... 这样在赋值的时候就会自动赋值

数值型的数组就是给0 ,那字符应该给什么呢? 给A吗? 当然不是 直接结束不就好了嘛,\0不就出来了
你应该发现了 char 型数组可以 表示字符 或者字符串(应该说可以放入)
区别? 上面都说到了 自然是放\0 只不过字符型的是一个一个的苹果,字符串是一根项链...

应该明白了吧
第4个回答  2008-07-28
是什么都无所谓,用的时候别出错就行了,
知道“\0”一般就用不错了。
第5个回答  2008-07-28
当然主要是你不懂但双引号的原因吧。

很重要的一点就是字符串是占二个字节,而字符数组占一个字节。
"a"就是字符串,'a'就是字符。 char c[6] = {'a', 'b', 'c','d', 'e','f'}

char c[6] = {"a", "b", "c", "d", "e", "f"}
会报错,因为自字符串数组是二维,

但这样写可以: char c[7]= {"abcdef"}因为有\0元素。
char c[7] = {"abcdef"}也对。

但是有一个以上字符串就不行了, 字符串就是地址,就是指针。

慢慢领悟吧,我当时学,也是痛苦。用的是C HOW TO PROGRAME 这本书,后来我学了谭浩强的书就明白很多了。

要自己蜕变啊,加油!
相似回答