c++问题,请问选什么?为什么?

如题所述

第1个回答  2015-11-30
选择D。
因为y[]的最后一位存'/0'表示结束,所以y的长度大于X
其中/0表示字符串终止, 终止符是编译时自动加上的, 然后一个字符一个字符地复制到s所指的内存区域。因此定义字符串数组时, 其元素个数至少应该比字符串的长度多1。追答

答案是

追问

是c

追答

我记得是D啊

好吧,学习了

追问

(^-^)

第2个回答  2015-11-30
选C
比如说char a[]={'a','b','c'} 这是一个字符数组,占3个字节。 char a[]="abc" 则不同,它是一个字符串,最后还有一个'\0'结束符,占4个字节追问

但是,他问的不是长度吗?

长度和大小是不同的概念啊

第3个回答  推荐于2016-06-01
选C

char x[]="abcdefg" 后面还跟着一个'\0';所以占了8个字节;
char y[]={'a','b','c','d','e','f','g'}只占7个字节;
其实说确切点应该是字符数组所占空间

但是如果你想获得字符串的长度,其实下面的那种是不定的,你要看看内存中到哪位是\0追问

但是对于长度来说,结束符不是不算在内吗?

追答

算啊,所以x比y多占一位

追问

那大小又是什么概念?

追答

一个是数组在内存中的大小,一个是字符串的长度。输出的那个14是不定的(是大于等于7的)

追问

哦?为什么没有结束符的长度是不变的?谢谢

哦,知道了,谢谢

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网