为了账号安全,请及时绑定邮箱和手机立即绑定

这个我输出了几次结果每一次都不一样,有木有大佬讲解一下,谢谢

这个我输出了几次结果每一次都不一样,有木有大佬讲解一下,谢谢

C++
慕先生9221815 2017-06-24 16:45:59
查看完整描述

3 回答

?
宝慕林3186212

TA贡献4条经验 获得超0个赞

断点调试进去查

查看完整回答
反对 回复 2017-06-24
?
望远

TA贡献1017条经验 获得超1032个赞

问题就出在了循环条件上

*ps!=0 //这是在判断指针ps所指向的变量的值是否不等于0

初始值ps指向了s[6]即变量值为6,开始执行循环,ps每次自增,指向下一个int空间,但是直到s[10]即数组s的最后一个空间都还没有跳出循环,继续指向下面的空间,下面的空间是非法的,未知的,所以多次运行的结果不一致。

查看完整回答
反对 回复 2017-06-24
  • 慕先生9221815
    慕先生9221815
    不好意思,没看明白??
  • 望远
    望远
    这里访问了数组s后面的非法内存,这些内存空间的值是非法的,未知的,这里其实会产生一个段错误,具体要看你的编译器是什么。
  • 望远
    望远
    你可以讲数组元素的0和10换一下,结果就是唯一的,因为后面的*p!=0这个循环条件得到了明确的跳出。结果k的值就等于6+7+8+9,而最后一个元素改成了0,跳出循环。
  • 3 回答
  • 0 关注
  • 1393 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信