strcpy问题

在书中看到这样一段话:如果在复制前未对str1数组初始化或赋值,则str1各字节中的内容是无法预知的,复制时将str2中的字符串和其后的‘\0’一起复制到字符数组1中,取... 在书中看到这样一段话:
如果在复制前未对str1数组初始化或赋值,则str1各字节中的内容是无法预知的,复制时将str2中的字符串和其后的‘\0’一起复制到字符数组1中,取代字符数组1中的前面6个字符,最后4个字符并不一定是‘\0’,而是str1中原有的最后4个字节的内容。
这句话什么意思???我试了没有对str1数组初始化,但是还是和初始化了的结果一样,只显示复制的内容。
还有,怎样才能只覆盖str1前面的字符,而其后面的还显示。
展开
 我来答
davidaq
2013-09-02 · TA获得超过879个赞
知道小有建树答主
回答量:275
采纳率:0%
帮助的人:411万
展开全部
如果str1没有初始化,那么“在复制前”,其内容是不可预知的。
在复制后,str2在0之前的内容(包括0本身)会覆盖str1原有内容,str1后面的内容保持不可预知。
比如你写了char text[10];
那么到此位置text里面有啥无法预测,有的编译器会把所有10个字节都设置为0。
假设你str1初始化得到的东西如下
0 1 2 3 4 5 6 7 8 9(实际肯定不会如此规律)
然后你的str2为
3 2 1 0 9 8 7 6 5 4
strcpy(str1, str2);后str1会变为
3 2 1 0 4 5 6 7 8 9(注意0往后与原来一样)
注意上面的数字不是字符而是字节,用字符串描述str1初始值就是"\x0\x1\x2\x3\x4\x5\x6\x7\x8\x9"
来自:求助得到的回答
yzy6655
2012-12-07 · 超过18用户采纳过TA的回答
知道答主
回答量:280
采纳率:0%
帮助的人:42.4万
展开全部
问你们的老师
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式