char x[ ]=“abcdefg”; char y[ ]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’};

数组x和数组y的长度相同吗?

第一个8,第二7,因为第一个要加上'\0'。

main()

{char x[]="abcdefg";

char y[]={'a','b','c','d','e','f','g'};

printf("%d",strcmp(x,y));

getch();

}

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

扩展资料:

字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

参考资料来源:百度百科-字符串

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-14
不一样。前面一个是字符串定义,字符串都有结束符‘\0’。所以比后面长1个字节。
第2个回答  推荐于2018-02-27
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
char x[]="abcdefg";
char y[]={'a','b','c','d','e','f','g'};
int xlen;
int ylen;
xlen=sizeof(x);
ylen=sizeof(y);
printf("xlen=%d ylen =%d\n",xlen,ylen);
return 0;
}

xlen=8 ylen =7

事实胜于雄辩 可以看出不是一样长的本回答被提问者和网友采纳
第3个回答  2016-04-21
不相同,x数组比y数组多一个尾零:‘\0’
第4个回答  2013-04-14
可以用sizeof来查看数组大小.
xlen=sizeof(x);
ylen=sizeof(y);
相似回答