首页 > 试题广场 >

不能把字符串"HELLO!"赋给数组b的语句是?

[单选题]
不能把字符串"HELLO!"赋给数组b的语句是()
  • char b[10]={'H','E','L','L','O','!','\0'};
  • char b[10];b="HELLO!";
  • char b[10];strcpy(b,"HELLO!");
  • char b[10]="HELLO!";
推荐
没有将字符串常量直接赋值给char数组变量的方式

选B
编辑于 2015-01-28 16:07:06 回复(4)
字符数组初始化有两种方法:一种是逐个字符赋值,另一种是用字符常量对整个数组赋值。 A是第一种,D是第二种。显然第一种比第二种繁琐复杂。 C是字符串拷贝函数。 函数格式: char *strcpy (char *s1, const char *s2); 功能: 将S2所指的字符串拷贝到S1所指的字符串中。 说明: (1)参数S1S2都是指向字符串的指针。S1可以是字符数组名或字符指针,但不能是字符型常量,S2可以是字符串常量、字符数组或字符指针。 (2)将S2所指的字符串拷贝到S1所指的字符串中,用赋值语句S1=S2;是不行的,赋值语句要求左边是左值,S1是常量。 (3)要保证S1的长度足够大,以便能容纳下S2所指的字符串,否则引起错误。 C 对于非strtic型数组不初始化,其元素值不能确定。对strtic数组元素不赋初值,系统会自动赋以0值。(参考)
发表于 2015-03-28 17:00:15 回复(1)
答案:B
选项B并没有将数组b赋值为 hello! 因子b是数组的首地址,b="HELLO!";是改变了这个指针的指向,是错误的。
发表于 2015-01-28 11:14:26 回复(2)
char *s1;
s1="hello!"
这样是可以的
发表于 2015-11-01 16:10:00 回复(0)
char数组只有在初始化的时候才能整体赋值
发表于 2017-09-15 11:19:30 回复(0)
B错误在于 数组名是常量指针,其值不能改变,对于字符数组赋值,需逐个元素赋值;对于字符型指针,可将任一指针值赋给字符指针变量。
发表于 2016-08-09 15:58:34 回复(0)
选项B并没有将数组b赋值为 hello! 因子b是数组的首地址,b="HELLO!";  所以B代表的是首地址而并不是字符串!
发表于 2015-10-10 11:41:01 回复(0)
指针和数组名是有区别的,数组不是指针,数组名只是一个“常量”, 而且是右值,不可为左值
发表于 2015-09-04 21:47:27 回复(0)
数组的名字是常量,不能赋值也不能自增自减操作
发表于 2017-07-04 17:46:29 回复(0)
答案 B
解释:
b="HELLO!";  右边返回的是const *char类型, 不能赋值给左边。
发表于 2015-01-21 16:57:39 回复(0)
b="HELLO!";是想改变b的指向。
但是数组名是常量,不能改变。
因此,B错
发表于 2016-03-29 13:17:25 回复(0)
数组名是一个常量,不能做左值,选B
发表于 2015-08-14 18:26:37 回复(0)
B 选项是错误的,连编译都不会通过,因为数组名属于常指针,现在要改变这个常指针的指向,这是不会编译通过的,再说B 选项的本意是将Hello 拷贝到b指向的空间中,但实际却是将b指向了在常量区的Hellow 字符串(虽然编译不会通过)
发表于 2018-04-11 22:16:28 回复(0)
char b[10];strcpy(b,"HELLO!");    //把“HELLO!”复制给b的空间中
发表于 2019-07-17 11:47:20 回复(0)
数组名其实是一个常指针,B操作是吧常指针的指向改变了,这样编译不通过
发表于 2019-03-20 10:32:18 回复(0)
数组名是常量,是数组首元素的地址,不能赋值作左值
发表于 2018-07-15 22:12:45 回复(0)
char b[10];b为地址不能赋值
发表于 2018-03-22 20:01:49 回复(0)
数组名不能作为左值!
发表于 2018-01-20 17:57:05 回复(0)
数组名是常量,不能做左值
发表于 2017-10-04 00:20:12 回复(0)
b为数组的首地址,不能进行赋值操作
发表于 2017-05-16 11:19:52 回复(0)
B   错误原因: char b[10]定义了一个指针,指向字符型数组,存储数据放在栈区。 char b[10]="HELLO!"将常量区的字符串复制一份放入数组,b仍指向栈区,这种方式只能在初始化的时候使用。 b="HELLO!"中b为指向一个字符的指针,这种方式相当于把b的地址改为指向常量区,故错误
发表于 2017-05-15 10:12:41 回复(0)