当前位置: 代码迷 >> C语言 >> 字符数组和字符串数组区别
  详细解决方案

字符数组和字符串数组区别

热度:278   发布时间:2007-09-02 22:21:48.0
char *String[]={ "abcdefg","abcdefg","abcdefg","abcdefg"};这个是否字符串数组?
----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------

字符串数组的元素都是字符串呗...


----------------解决方案--------------------------------------------------------
回复:(雨中飞燕)以下是引用努力学编程在2007-9-2 2...
飞燕,能给个例子不?
----------------解决方案--------------------------------------------------------
字符串总是作字符数组处理的,但并不意味着他们两者相等,因为反过去不成立。
----------------解决方案--------------------------------------------------------
字符串数组中的每个元素都是一个字符串,字符串是以'\0'结尾,字符串是用""包括起来的
而字符数组中的每个元素都是一个字符.字符是''包括起来的,字符串本身就是一个字符数组,只不过是常量字符数组,里面的字符不能改变.
char a[3]={'a','b','c'};
这只是一个字符数组;

char a[3][2]={"a","b","c"};
这才是定义了一个字符串数组
注意,是a[3][2],如果是a[3][1]就错了,因为"a"占两上字符,还有一个'\0';
定义一个字符串数组A[X][Y],其中的所有元素(字符串)所占的大小必需小于或等于Y,否则就会报错.

----------------解决方案--------------------------------------------------------
应该没有字符串数组这一个概念,却有字符数组的概念。
11楼说“char *String[]={ "abcdefg","abcdefg","abcdefg","abcdefg"};这个是否字符串数组?”
我认为它不是字符串数组,而是指针数组。在多数(还是所有?)情况下,字符串的“值”是一个字符指针。
比如:char *String = "China";.

[此贴子已经被作者于2007-9-7 20:38:23编辑过]


----------------解决方案--------------------------------------------------------
以下是引用Knocker在2007-9-2 22:21:48的发言:
char *String[]={ "abcdefg","abcdefg","abcdefg","abcdefg"};这个是否字符串数组?

是一个很容易出事情的串数组
----------------解决方案--------------------------------------------------------

书 上说:

字符串常量是一个字符数组,例如:"I AM A STRING"

在字符串的内部表示中,字符数组已空字符'\0'结尾.



----------------解决方案--------------------------------------------------------

VB:
dim aa(1000) as string
a(1)="1234"
a(2)="2345"
这才是字符串数组吧>
C中好象没有字符串类型吧!!


----------------解决方案--------------------------------------------------------
  相关解决方案