首页 > 试题广场 >

以下字符串定义与赋值中,正确的是()

[单选题]
以下字符串定义与赋值中,正确的是()
  • char s[80] = {"A", "B", "C"}
  • char s[80]; s = {'A',  'B', 'C'}
  • char s[80]; s = "ABC";
  • char s[80] = "ABC";
选啥了?
发表于 2016-04-13 17:06:12 回复(0)
  • A:char s[80] = {"A", "B" ,"C"}
后面是对数组元素进行初始化,而每个元素是字符所有应该用单引号。
  • B:char s[80]; s = {'A', 'B','C'}
这个的错误是由于对数组初始化必须在定义的时候,否则不能对数组进行像上面这样的整体赋值,只能对单个元素进行赋值。
  • char s[80]; s = "ABC";
这个的错误原因和B类似。
  • char s[80] ="ABC";
发表于 2016-07-13 13:44:42 回复(3)
字符数组初始化有俩种方法:
1.用字符为数组赋初值,A选项等式右边所有字符如果使用单引号,则也正确
2.用字符串常量赋初值,即D选项,注意字符串用双引号
除此以外,都是错的。
发表于 2016-06-18 20:16:54 回复(1)
A的意思是用了三个字符数组初始化显然不对。B与C我认为此时的s就是指针了,声明时初始化可以,但是单独再赋值就不对了,让指针的值等于别的值也就出错了,D正确,字符串本身就是字符数组,赋值没问题
发表于 2016-05-04 00:07:51 回复(1)
A: 编译出错 too many initializers for char [80]
B:编译出错  assigning to an array from an initializer list
C:编译出错  incompatible types in assignment of ‘const char [4]’ to ‘char [80]’
D:正确。
发表于 2016-04-29 16:56:07 回复(1)
A. 应该是用单引号 'A','B','C'. B 和C数组应该在定义的时候就初始化 不能先用一条语句定义在用一条语句赋值
发表于 2016-04-18 19:16:08 回复(0)
A选项,数组元素要使用单引号,故A选项错误
B,C选项,数组名代表的是数组的首地址,也是数组第一个元素的地址,不能进行赋值操作
D选项,正确,在栈区为s数组开辟80字节,并对其初始化,故是使用字符数组模拟字符串。
发表于 2016-07-15 18:34:50 回复(0)
对于数组的整体初始化必须在定义时就完成初始化,定义时未初始化之后就只能对单个元素进行赋值
发表于 2022-03-14 14:03:47 回复(0)
BC: 声明好后s就是常指针了,不能通过让s指向其它地方来赋值了
发表于 2021-08-31 22:53:32 回复(0)
  • A:char s[80] = {"A", "B" ,"C"}
后面是对数组元素进行初始化,而每个元素是字符所有应该用单引号。
  • B:char s[80]; s = {'A', 'B','C'}
这个的错误是由于对数组初始化必须在定义的时候,否则不能对数组进行像上面这样的整体赋值,只能对单个元素进行赋值。
  • char s[80]; s = "ABC";
这个的错误原因和B类似。
  • char s[80] ="ABC";
发表于 2020-02-27 14:57:40 回复(0)
输入:
char a[10];
cin>>a;
或:
char a[10];
for(int i=0;i<10;i++)
        cin>>a[i];

初始化:
char a[10]={'a','b','c'};
或:
char a[10]="abc";

不能:
char a[10];a="abc";
char a[10];a={'a','b','c'};
编辑于 2017-09-05 21:57:25 回复(0)
A选项,数组元素要使用单引号,故A选项错误
B,C选项,数组名代表的是数组的首地址,也是数组第一个元素的地址,不能进行赋值操作
D选项,正确,在栈区为s数组开辟80字节,并对其初始化,故是使用字符数组模拟字符串。
发表于 2017-07-31 22:04:43 回复(0)
BC两咱赋值方法都是错误的。请一定要注意。
发表于 2016-05-22 14:27:16 回复(0)
碰到对数组命赋值,直接判断错的。因为数组名可理解为指针常量,表示地址不可变~
发表于 2021-03-21 17:35:30 回复(0)
答案为D 
A中只能复制字符A与‘/0'其他均不能
B中字符数组S中ABC之后无'/0' 不知在哪结束。
C中S为一个指针 指向一个字符串常量ABC。S指向的内容不可改。

发表于 2016-07-19 19:38:06 回复(0)
数组名为数组首地址。
发表于 2022-04-21 23:03:24 回复(0)
说一下C选项: 一种解释是:数组(包括字符数组)必须定义的时候进行初始化。 第二种解释是:不能将一个字符串常亮赋值(注意重点是赋值)给一个数组,因为字符串常量出现在表达式中时,表达式所使用的值就是这些字符所存储的地址,即字符串常量的直接值是一个指针,而不是字符本身。
发表于 2020-08-21 01:35:25 回复(0)
1 单字符变量常量用单引号 2 数组需在定义时初始化
发表于 2020-07-26 07:14:57 回复(0)

单引号赋值,标记

发表于 2019-10-09 13:02:21 回复(0)
好像大家都没发现“;”
发表于 2019-05-26 22:00:00 回复(0)