首页 > 试题广场 >

下面是对s的初始化,其中不正确的是( )

[单选题]
下面是对s的初始化,其中不正确的是(        )
  • char s[5]={"abc"};
  • char s[5]={'a','b','c'};
  • char s[5]=" ";
  • char s[5]="abcdef";
A 会自己拆成B的形式

发表于 2017-06-13 23:55:17 回复(5)
D 越界了 会自动截取前五个字符 但是没有\0 结束符  可能会出错 😥
发表于 2018-12-17 16:50:08 回复(0)

前两个选项会用a,b,c填充,后面用两个/0结束符填充,前两个是一样的效果,第三个选项全部用/0结束符填充,最后一个选项因为长度不足,会自动截取5个字符,因为这样就没有/0了,后面使用会有问题

发表于 2019-02-19 13:48:56 回复(1)
S[5]里面最多有4个元素,还有一个是结束符!
发表于 2017-06-04 20:26:44 回复(2)
char str[10]="Hello, world.\n"; 初始化数据等于或超过数据长度 这种情况下,超出的部分将被丢弃,所以这个例子的最后一个字符为'r'. 此时使用一些字符串函数时要特别注意,因为该数组不含有'\0',会造成不可预期的结果
发表于 2022-01-11 03:53:18 回复(0)
字符数组结束符问题
发表于 2021-12-20 17:37:08 回复(0)
<p>前三个选项都是可以写,后一个数组长度为5但是他里面元素有7个其中6个字母一个/0,所以选D希望能帮到你们。🏋🏿🏋🏿🏋🏿</p>
发表于 2020-11-07 11:11:16 回复(0)
D为越界错误,与 结束符无关。字符数组 不要求是 字符串
发表于 2023-07-08 09:42:30 回复(0)
此处主要为边界溢出,a.b.c.d.e.f为6个字符,那么所取值须为下标6
发表于 2022-07-03 11:07:59 回复(0)
个人理解,D错不是因为s中没有/0,毕竟也没规定char数组必须/0结束,而是因为内存越界了,会影响后面空间。所以才错
发表于 2021-02-20 13:36:31 回复(0)
<p>变成过程中尽量不会使用a</p>
发表于 2021-01-18 21:34:06 回复(0)
这个也能错????
发表于 2018-04-07 11:34:44 回复(0)
A这样初始化正确吗?
发表于 2017-06-09 07:56:40 回复(1)
d
发表于 2017-06-05 14:01:24 回复(0)