对两个数组a和b进行如下初始化: char a[] = “ABCDEF”; char b[] = {‘A’,‘B’,‘C’,‘D’,‘E’,‘F

则以下叙述正确的是A)a与b完全相同B)a与b长度相同C)a与b中都存放字符串D)a数组比b数组长度长... 则以下叙述正确的是
A) a与b完全相同 B) a与b长度相同
C) a与b中都存放字符串 D) a数组比b数组长度长
展开
 我来答
分享社会民生
高粉答主

2020-07-14 · 热爱社会生活,了解人生百态
分享社会民生
采纳数:1248 获赞数:283352

向TA提问 私信TA
展开全部

答案是D,a数组比b数组长度长

原因:a数组的长度是6,b数组的长度是7。

在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。字符串总是以'\0'作为串的结束符。


扩展资料:

初始化器在C/C99/C++中,初始化器是声明器的可选部分,它由一个'='以及其后的一个表达式(或含有多个以','隔开的带圆括号表达式的单一列表)所组成。

详细说明:

把一个字符串赋值给数组:u4 str1[]={"cxknmsl"};

实际上数组str1在内存中的实际存放情况为: c x k n m s l '\0' 

这后面的'\0'是由C编译系统自动加上的。所以在用字符串赋初值时一般无须指定数组的长度, 而由系统自行处理。 

把字符数组str1中的字符串拷贝到字符数组str2中,串结束标志'\0'也一同拷贝。

labikkkk
推荐于2016-06-16 · TA获得超过383个赞
知道小有建树答主
回答量:201
采纳率:0%
帮助的人:201万
展开全部
楼主首先要明白的是什么是长度。数组元素的个数称之为数组的长度。
现在再看看问题 第一个是 字符串,第二个是字符数组 ,字符串以'\0'为结束符号,字符数组不用。
那就很明白了。B 对。
要说明的是,虽然他们长度相同,不过占的内存字节数是不一样的,第一个占7个字节(后面的'\0'占一个。)第二个占6个字节。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bdlanyu
推荐于2018-02-28 · TA获得超过550个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:525万
展开全部
"ABCDEF”;是字符串,字符串默认是有字符串结束符的。
所以选d
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2019-10-16 · TA获得超过137个赞
知道小有建树答主
回答量:117
采纳率:50%
帮助的人:57.3万
展开全部
要不这样理解吧
首先a作为字符串长度为6;
作为字符数组有7个元素,包含\0,a数组的长度为7;
b是字符数组有6个元素,不是字符串,b数组的长度为6;
选D
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
酷儿RK
2011-01-11
知道答主
回答量:7
采纳率:0%
帮助的人:3.9万
展开全部
#include<stdio>
void main()
{
int m,n;
char a[]="ABCDEF";
char b[]={'A','B','C','D','E','F'};
m=sizeof(a);
n=sizeof(b);
printf("a 所占字节数 %d,b 所占字节数 %d\n",m,n);
}
所以选D
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式