字符数组和字符串

每天学一点! 2018-10-30 11:04:08


输出结果:




我不理解的是:为什么最后没加s2没加'\0',但是似乎编译器给加了'\0'。那么,我在main函数里面初始化s2时(应该是随机数),为啥编译器把这些数可整没了。

...全文
168 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zangfong 2018-10-30
  • 打赏
  • 举报
回复
在main中的s2并未初始化,其存储的内容是无意义的随机数。这种情况只是碰巧,copy了abcd之后,s2[4]也许正好是\0,或者是s2[4]是看不见的字符如空格,\b等,然后s2[5]正巧是\0,等等。 你可以单步调试,把s2放到监视中,看看里面的实际存储内容,这样就一目了然了。
CT8100 2018-10-30
  • 打赏
  • 举报
回复
你不是做了copy操作么。。。将s5中的数据赋值给了s2
每天学一点! 2018-10-30
  • 打赏
  • 举报
回复
引用 4 楼 hjwang77 的回复:
首先,你这个重新应该编译失败,s5换成s1才行
另外s2没做初始化,里面的值是随机的,拷贝完了只是前面4个字节被赋值,后面依然是随机,不过运气好才能打印正常。
你可以将s2初始化成‘1234567890’,然后拷贝完了在打印看看还是你这个结果不。


嗯嗯 截图的时候 不小心按错了。。但还是那个意思、。。我试试你的操作
每天学一点! 2018-10-30
  • 打赏
  • 举报
回复
引用 2 楼 zangfong 的回复:
在main中的s2并未初始化,其存储的内容是无意义的随机数。这种情况只是碰巧,copy了abcd之后,s2[4]也许正好是\0,或者是s2[4]是看不见的字符如空格,\b等,然后s2[5]正巧是\0,等等。
你可以单步调试,把s2放到监视中,看看里面的实际存储内容,这样就一目了然了。


我试试
每天学一点! 2018-10-30
  • 打赏
  • 举报
回复
引用 5 楼 cfjtaishan 的回复:
代码有问题呢,s5在哪里?把s5拷贝给s2

后面打错了,但是问题还是那个意思。。
自信男孩 2018-10-30
  • 打赏
  • 举报
回复
代码有问题呢,s5在哪里?把s5拷贝给s2
英雄@末路 2018-10-30
  • 打赏
  • 举报
回复
首先,你这个重新应该编译失败,s5换成s1才行
另外s2没做初始化,里面的值是随机的,拷贝完了只是前面4个字节被赋值,后面依然是随机,不过运气好才能打印正常。
你可以将s2初始化成‘1234567890’,然后拷贝完了在打印看看还是你这个结果不。
smwhotjay 2018-10-30
  • 打赏
  • 举报
回复
s5 哪里定义的变量??

69,375

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧