首页 > 试题广场 >

若有语句

[单选题]
若有语句
char s1[10], s2[10] = {"books"};
则能将字符串 books 存放到数组 s1 的正确语句是(   )
  • strcpy(s1, s2);
  • s1 = {"books"};
  • s1 = s2;
  • strcpy(s2, s1);

数组名代表的是数组的首地址,是一个地址常量,所以不能给数组名赋值(函数定义的形参列表传入的是指向数组的指针变量,可以变化)C错误

发表于 2018-11-05 09:53:38 回复(1)
char *strcpy(char *dest, const char *src) 

发表于 2017-08-21 17:14:31 回复(3)
因为c表示将s2这个对象赋值给s1,而A表示将s2中的books字符串赋值给s1,b表示创建了一个books字符
发表于 2017-09-29 21:00:23 回复(0)
A选项strcpy函数执行copy作用,将s2指针所指数组负值给s1. B选项s1为指向首地址的常量指针,不能进行字符串负值操作. C选项 同理B. D选项 strcpy函数使用错误,将s1赋值给s2了.
发表于 2022-03-06 17:08:20 回复(0)
char *strcpy(char *dest, const char *src) 
dest:目标数组,要被赋值的数组;
src:用于赋值的值
发表于 2021-03-22 11:07:02 回复(0)
说好的 终点地址的空间要大于目的地址空间的呢???。
发表于 2017-05-25 22:37:37 回复(1)
不懂 c为啥不对
发表于 2017-08-11 14:23:43 回复(9)
错因 对strcpy()函数 不熟悉 以为前是参照 后是目标
发表于 2019-04-08 15:31:33 回复(1)
这不是java吧?java数组可以更改地址的
发表于 2022-08-21 10:32:15 回复(0)

B为什么不正确?

发表于 2018-07-21 11:53:40 回复(6)
数组名表示的是首地址,s1=s2表示把首地址赋给s1
发表于 2024-04-09 09:02:28 回复(0)
strcpy(s1,s2)指将字符串s2复制到s1中。 B项中s2是已经定义还的数组的地址,是一个指针常量,不能给指针常量赋值,其实任何常量都是不能复赋值的。
发表于 2022-10-20 23:29:28 回复(0)
在c中,char c1[10]  的 c1  其实就是指向了字符串的首地址,而首地址在内存中属于常量,无法进行赋值操作
发表于 2023-11-17 17:08:09 回复(0)
调用strcpy(dest , src)实现数组拷贝
发表于 2023-11-10 16:57:36 回复(0)
我的理解:C++的数组其实就是对指针常量的一种包装。

不过这个大括号搞得我有点懵,从来没见过这么写的,第一反应是会报错。
但实际情况好像是下面这样(我猜的,不知道对不对...)
// {"books"} 相当于 { 'b','o','o','k','s','\0' }
编辑于 2023-03-02 23:16:33 回复(0)
数组名代表的是数组的首地址,是一个地址常量,例如本题的s2=s2[0],所以不能给数组名赋值,s1!=s2C错误
发表于 2023-02-09 10:21:31 回复(0)
char c1[2],c2[2]="ss";
strcpy(char c1,char c2)函数,是将数组c2的字符串赋值给数组c1
发表于 2023-01-17 23:32:02 回复(0)
这个题目不够严谨,char是一个单个字符串的数据类型,如果定义为char类型的数组,它原来的长度为多少,原来是二维数组还是一维数组还是多维数组。题目是开辟两个空间,而且是s2地址为10已经赋值。
发表于 2022-10-04 16:16:11 回复(0)
不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组,只能用strcpy函数将一个字符串复制到另一个字符数组中去,赋值语句只能将一个字符赋给一个字符型变量或者字符数组元素。
发表于 2022-08-21 18:07:37 回复(0)
这是java题?
发表于 2022-07-01 14:21:37 回复(1)