请教一个C语言的判断题,麻烦解释一下,谢谢!!若有语句:char *s1="string2";则

请教一个C语言的判断题,麻烦解释一下,谢谢!!若有语句:char*s1="string2";则语句strcpy("china",s1);是正确的。为什么错误?... 请教一个C语言的判断题,麻烦解释一下,谢谢!!若有语句:char *s1="string2";则语句strcpy("china",s1);是正确的。
为什么错误?
展开
 我来答
百度网友99948e1
2006-06-08 · TA获得超过269个赞
知道答主
回答量:87
采纳率:0%
帮助的人:115万
展开全部
正确。
char *s1="string2" 这条语句定义了一个字符型指针s1,它指向的是字符串的首地址。strcpy(char *s1,char *s2)是字符串复制函数,其功能为将字符串s2复制到字符串s1中去。它的两个参数s1,s2必须是字符串或字符型指针。
湛蓝水晶
2006-06-08 · 知道合伙人数码行家
湛蓝水晶
知道合伙人数码行家
采纳数:1388 获赞数:9352
毕业北京科技大学数学与应用数学专业,学士学位,IT行业6年从业经验。现任公司项目经理。

向TA提问 私信TA
展开全部
谁说是正确的??????
strcpy("china",s1)和strcpy(s1,"china")都是错误的,内存隐患。

strcpy("china",s1):“china”为一个字符串常量,然后将s1的内容复制到"china"所在的内存区域,相当于更改了常量区,可能会引起程序崩溃

strcpy(s1,"china"):同理,s1是指向"string2"这个字符串常量的,复制操作也是修改了常量区。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
记赢潇x
2006-06-08 · TA获得超过465个赞
知道小有建树答主
回答量:762
采纳率:100%
帮助的人:569万
展开全部
s1是字符串数组"string2";的首地址,
strcpy其实是传递地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d3e418b2c
2006-06-08 · TA获得超过2195个赞
知道大有可为答主
回答量:1361
采纳率:0%
帮助的人:1732万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式