当前位置: 代码迷 >> C语言 >> 请教关于字符数组
  详细解决方案

请教关于字符数组

热度:104   发布时间:2007-08-26 18:23:29.0

这是什么意思?



----------------解决方案--------------------------------------------------------
他的意思是说你多打了个冒号
----------------解决方案--------------------------------------------------------
以下是引用coachard在2007-8-26 18:19:47的发言:
是会自动在末尾加一个'\0'这是没错。但这已经超过了数组的范围,,,溢出啦!

这和选项C是一样危险的,所以让我选我会选C和D!

末尾自动加0字符是在用 字符串 字面量的去做初始化时。

char a[] = "abc";或者char *a = "abc"
a的size是4,a[3]是空字符。

char a[] = {'a','b','c'};
字符数组,a的size是3,a[3]为定义,越界


----------------解决方案--------------------------------------------------------
没啊,上面就是这样写的。
----------------解决方案--------------------------------------------------------
那就更证明我选C和D的正确性是不容置疑的!
----------------解决方案--------------------------------------------------------

他的没,是说有:
我觉得d象c的字符串常量定义,对么?

[此贴子已经被作者于2007-8-26 18:48:59编辑过]


----------------解决方案--------------------------------------------------------
以下是引用aipb2007在2007-8-26 18:12:43的发言:
非要说D错,那就是构不成一个字符串。

ctype字符串是以'\0'结尾的!

同意这个观点。
char a[]={′j′,′f′,′t′}; 是定义了一个字符数组,并给三个元素赋了三个值。
而题目问的是“关于字符串的说明中”,显然要构成字符串结尾要加‘\0’的。
----------------解决方案--------------------------------------------------------
分清楚了,谢谢
----------------解决方案--------------------------------------------------------

现在知道了字符串初始划只能是char a[]={'j','f','t','\0'};如果写成char a[]={'j','f','t'};这只能是一个字符数组,不是字符串.

谢谢大家!!


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