对两个数组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数组长度长 展开
A) a与b完全相同 B) a与b长度相同
C) a与b中都存放字符串 D) a数组比b数组长度长 展开
7个回答
展开全部
答案是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'也一同拷贝。
展开全部
楼主首先要明白的是什么是长度。数组元素的个数称之为数组的长度。
现在再看看问题 第一个是 字符串,第二个是字符数组 ,字符串以'\0'为结束符号,字符数组不用。
那就很明白了。B 对。
要说明的是,虽然他们长度相同,不过占的内存字节数是不一样的,第一个占7个字节(后面的'\0'占一个。)第二个占6个字节。
现在再看看问题 第一个是 字符串,第二个是字符数组 ,字符串以'\0'为结束符号,字符数组不用。
那就很明白了。B 对。
要说明的是,虽然他们长度相同,不过占的内存字节数是不一样的,第一个占7个字节(后面的'\0'占一个。)第二个占6个字节。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
"ABCDEF”;是字符串,字符串默认是有字符串结束符的。
所以选d
所以选d
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要不这样理解吧
首先a作为字符串长度为6;
作为字符数组有7个元素,包含\0,a数组的长度为7;
b是字符数组有6个元素,不是字符串,b数组的长度为6;
选D
首先a作为字符串长度为6;
作为字符数组有7个元素,包含\0,a数组的长度为7;
b是字符数组有6个元素,不是字符串,b数组的长度为6;
选D
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询