首页 > 试题广场 >

有定义如下,则正确的说法是?

[单选题]
有定义如下:
static char x[ ]= "abcde"; 
static char y[ ]={ 'a', 'b', 'c', 'd', 'e'}; 
则正确的说法是?
  • x数组的长度大于y数组的长度
  • x数组和y数组的长度相同
  • x数组的长度小于y数组的长度
  • x数组与y数组等价
推荐
答案为A
对于 static char x [ ]= "abcde" ;而言,长度为6,因为 "abcde" 是字符串,末尾默认有'\0'结束符,长度为6。
对于 static char y [ ]={ 'a' , 'b' , 'c' , 'd' , 'e' };而言,是将每个字符逐一赋值到y[]中,所以长度为5。


所以,答案为A
   x数组的长度大于y数组的长度
编辑于 2015-02-09 10:11:20 回复(1)
如果是用sizeof()函数的话,两个数组的长度分别为6,5.如果是用strlen()函数的话两个数组的长度分别是5,5.

发表于 2015-08-24 15:22:57 回复(7)
字符串赋值时会在字符串末尾自动加上‘\0’结束符,但是字符赋值不会,
编辑于 2015-09-02 09:51:27 回复(0)
题目本身的问题
一般说字符串长度就是strlen()
而这个题考的是sizeof
发表于 2015-09-10 19:09:24 回复(2)
我觉得是这样,sizeof()是求所占字节数,说长度的话一般都是指strlen(),,,所以这道题我感觉应该是选B
发表于 2016-10-27 21:28:15 回复(0)
题目不太严谨 确切来说如果有sizeof则是字符串空间的大小,用strlen才是字符串的长度
发表于 2018-11-16 17:15:44 回复(0)
字符串中存在一个结束符'\0',因此其实际长度为我们能看的见的字符数加1,故正确答案为A
发表于 2017-04-19 11:49:34 回复(0)
它说的是数组的长度,不是字符串的长度......对于X数组最后有一个'\0'元素
发表于 2016-04-20 20:12:50 回复(0)
这个题的长度只得啥?sizeof的内存大小还是strlen的字符串长度????????????
发表于 2020-01-07 10:45:55 回复(0)
strlen不应该是长度,sizeof不应该是大小吗?长度都是5怎么不对呢?
发表于 2019-05-13 11:30:47 回复(0)
x为字符串,有‘\0’,size为6
y每个为字符,size为5
发表于 2017-11-06 22:10:12 回复(0)
每次都纠结是strlen还是sizeof,然后每次都错
发表于 2017-07-14 08:29:21 回复(0)
每次做完才想起字符串后面有个“\0”
发表于 2017-07-10 11:54:04 回复(0)
这里的长度应该说明是字符还是字节
发表于 2016-06-03 22:58:24 回复(0)
我也搞不懂问的是指什么
发表于 2016-03-25 00:07:06 回复(0)