char x[]="abcdefg"; char y[]={'a','b','c','d','e','f','g'}; 为什么数组x的长度大于数组y的长度呢

求各位指点一下啊!

a有一个隐藏的字符串结束符\0啊,所以多一个。追问

刚看了 一下知道了啊!谢了哈!

温馨提示:内容为网友见解,仅供参考
无其他回答

...}; char y[]={'a','b','c','d','e','f','g'}; 比较它们的长度...
{char x[]="abcdefg";char y[]={'a','b','c','d','e','f','g'};printf("%d",strcmp(x,y));getch();} a数组的长度是6,b数组的长度是7。在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。字符串总是以'\\0'作为串的结束符。

...char y[]={'a','b','c','d','e','f','g'}; 正确的是
C是正确的。char x[]="abcdefg"等价于char x[]={'a','b','c','d','e','f','g','\\0'} 所以x长度比y多一。

...char y[]={'a','b','c','d','e','f','g'}; 比较大小? 有点儿...
如果是的话,可以直接用strcmp(x,y) 如果x>y返回值是正数,等于返回值是0,小于返回是负数 下面是代码。。。main(){char x[]="abcdefg";char y[]={'a','b','c','d','e','f','g'};printf("%d",strcmp(x,y));getch();} 希望对你有帮助。。。仍有问题可以HI我。。。

下半年计算机二级c语言基础试题
char acX[ ]= "abcdefg"; char acY[ ]= {'a','b','c','d','e','f','g'}; 则正确的叙述为( ) A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同 C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组acY的长度 答案:C 2. void example(char acHello[]) { printf("%d...

C语言中字符数组的常量表达式怎样确定?
1、可以不填,系统会根据你后面字符的个数自动确定数组的长度 2、如果想填,那么第一个数组的长度是7,第二个长度是7+1,也就是8,其中需要给字符串结束标志\\0留一个存储空间

给出以下定义: char x[ ]="abcdefg";则正确的叙述为
b) 数组x的长度为8 sizeof(x) = 8 这是次字符串的实际占的内存 为8个字节,后面还有一个'\\0'strlen(x) = 7 字符串中实际字符的个数不包括'\\0'

为什么说 char a[ ]="abcdefg" 字符数组中有八个元素? 其中的数值也没...
其实应该是七个元素。。。只是对于字符串而言,结尾会加“\\0”表示字符串结束。。。所以实际上占了八个位置。。。希望能帮到你。。。

关于sprintf()
char a1[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G'};char a2[] = {'H', 'I', 'J', 'K', 'L', 'M', 'N'};如果:sprintf(s, "%s%s", a1, a2); \/\/Don't do that!十有八九要出问题了。是否可以改成:sprintf(s, "%7s%7s", a1, a2);也没好到哪儿去,正确的应该...

main() { char a[]="abcdefg",b[10]="abcdefg"; printf("%d %d\\n...
结果为:8 和10 一个字符占一个字节,sizeof就是求所占的字节数的。a编译会自动在后面添加一个'\\0'表示结束符,所以为 7+1=8。b是一个静态数组,里面的10表示其元素的个数,系统分配的时候按照这个来分配。

求C语言编程题
char acX[ ]= "abcdefg"; char acY[ ]= {'a','b','c','d','e','f','g'}; 则正确的叙述为( ) A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同 C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组acY的长度答案:C2. void example(char acHello[]) { printf("%d",...

相似回答