首页 > 试题广场 >

与声明:char str[10]={‘a’,’b’,’c’,

[单选题]
与声明:char str[10]={‘a’,’b’,’c’,’\0’}; 相等的声明是
  • char str[10] = "abc\0";
  • char *str = "abc";
  • char str[] = "abc";
  • char str[10] = "abc";
推荐
D
题干中在字符数组char str[10]={‘a’,’b’,’c’,’\0’}'\0'是字符结束符,所以是一个包含a、b、c三个元素,数组类型大小为10的数组

选项中
  • A 包含两个结束符占空间,显示的abc\0占4个空间隐式\0占1个空间。与题干不符,排除。
  • B 指针变量类型为8,与题干不符,排除。
  • C 动态数组类型,由元素个数决定大小,结果为4,与题干不符,排除。
  • D 包含隐含字符'\0',结束符,和abc三个元素,共占4个空间,和题干相同。所以D正确

编辑于 2019-08-19 14:08:11 回复(2)
char str[10]=“abc\0”; 隐的\0也占一个空间,相当于有两个\0
编辑于 2019-12-08 10:00:52 回复(3)
呵呵哒,AD一毛一样,无论是数组大小还是内存中的数据,完全没区别,干嘛排除A???还隐式\0占1个空间???给定数组大小情况下需要填充的时候填充'\0',本来就会占用空间,题干声明的那样也会啊。题目考的是默认填充次数?
编辑于 2019-08-28 20:29:31 回复(0)
A,D效果完全一样
发表于 2020-10-23 09:39:25 回复(0)
4d
“ ”这个符号末尾自带‘\0’
发表于 2019-08-16 15:33:32 回复(0)