已知char x[]="hello", y[]={'h','e','a','b','e'};, 则关于两个数组长度的正确描述是( )
A)相同 B)x大于y C)x小于y D)以上答案都不对
题目说的数组长度,不是字符串长度哦
所以第一个长度包括\0
char s1[] = "dsakad"; char s2[] = {'c','s'}; for(int i=0;i<=6;i++){ printf("%c~",s1[i]); //printf("%c~",s2[i]); }
看上面的代码,通过字符串变量创建,编译器会自动分配字符数组变量并以'\0' 结尾,按字符数组创建,每个下标对应一个字符,没有`\0`结尾,因此前者比后者多一位,但是整体特性是一样的。
长度不是不算'\0'吗,而且y的长度不确定啊
x比y多一'\0'
没有\0计算的长度不是随机值吗
x有个终止符
x[]6有个,"hello"字符串会在末尾自动加上终止符'\0'。y[]则只有5个。所以选B。
昨夜西风凋碧树 回复 莫小七: 正解
一窜字符的赋值,会赋一个‘\0’而一个一个的赋值,则不会有'\0';
B
用户登录可进行刷题及查看答案
登录后提交答案