C语言谭浩强书上说strcpy函数如果str1没有初始化,那么复制后得到的结果不一定是str2中的 一定吗?

是不一定还是肯定?我的结果咋就复制后跟s2一样... 是不一定还是肯定?我的结果咋就复制后跟s2一样 展开
 我来答
qinflying
2020-08-01 · 一个低调有内涵的技术人员
qinflying
采纳数:452 获赞数:1415

向TA提问 私信TA
展开全部
根据图所示可知:
s1和s2都进行了初始化,都能表示完整的字符串,所以复制函数strcpy正常运行,结果也为预期结果。
再来说说书上为啥这么说?
如果字符串数组未被初始化,或者字符串指针未被初始化而指向正确的字符串,那么会出现问题。
再来说说函数strcpy原理:
通过指针偏移依次将字符串中的字符复制到目的数组,只有遇到字符串结束符'\0'才结束复制。
如果字符串未初始化,那么字符串结束符是不确定的,有可能在定义的字符串数组长度内,也可能越界继续往下找到第一个结束符。此时复制结果是不确定的或者错误的。
阳光的雷咩咩
2020-08-01 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7860万
展开全部
你这是已经初始化了
你可以试试 char *s1;//这样定义
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式