VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 287|回复: 3

[已解决]《实用C++》第19课 超出数组界限为什么结果还是正确的?

[复制链接]
63_avatar_middle
最佳答案
1 
donate_vip 发表于 2019-10-18 11:11:50 | 显示全部楼层 |阅读模式
在《实用C++》第19课 老师布置的 小作业中

5、一维数组代码举例:
一整形数组中有10个数,分别是:5,8,9,0,2,1,4,7,6,3;
求出数组中最大和最小的数并进行输出。

6、小作业:
对第5点的数组进行排序,并输出排序后的数组内容。
------以下是实现的代码------------------

  1. int arrnNum[] = { 5,8,9,0,2,1,4,7,6,3 };

  2.         cout << arrnNum[11] << endl;   //输出的是指针数值


  3.         for (int i =0;i<10;++i)
  4.         {
  5.                 for (int j =i+1;j<10;++j)
  6.                 {
  7.                         int temp;
  8.                         if (arrnNum[i] < arrnNum[j])
  9.                         {
  10.                                 temp = arrnNum[i];
  11.                                 arrnNum[i] = arrnNum[j];  //大的值排前
  12.                                 arrnNum[j] = temp;        //小的值排后
  13.                         }
  14.                         [color=SeaGreen]//当i=9,j=i+1 =10,明显就超出了数组的界限,我调试时返回的是数组的指针
  15.                         //为什么执行之后结果还是正确的
  16.                         //是因为指针数据类型转化为 int时为0吗?[/color]


  17.                 }
  18.         }

  19.         for (int k =0;k<10;++k)                //还需要遍历数组来输出数组的值
  20.         {
  21.                 cout << arrnNum[k] << endl;
  22.         }
复制代码
最佳答案
51_avatar_small
2019-10-18 11:17:45
你这种情况明显是数组越界了,虽然没报异常,但是这种情况就是错误的情况,数组本身就10个元素,所以索引是:0~9,任何超出这个范围的访问都是错误的。




上一篇:请问c++怎么输出这种unicode字符啊
下一篇:为什么我的vs不能输入中文?
51_avatar_middle
最佳答案
82 
online_admins 发表于 2019-10-18 11:17:45 | 显示全部楼层    本楼为最佳答案   
bestAnswer
你这种情况明显是数组越界了,虽然没报异常,但是这种情况就是错误的情况,数组本身就10个元素,所以索引是:0~9,任何超出这个范围的访问都是错误的。
63_avatar_middle
最佳答案
1 
ico_lz  楼主| 发表于 2019-10-18 11:18:23 | 显示全部楼层
奇怪,我是用复制代码过来的 结果 数组 [i] 怎么会被自动屏蔽掉,需要看的同学老师,请脑补一下就可以了。
63_avatar_middle
最佳答案
1 
ico_lz  楼主| 发表于 2019-10-18 11:29:39 | 显示全部楼层
哦,是我想多了,当i=9,j=i+1 =10,明显就超出了数组的界限, for (int j =i+1;j<10;++j) 但因为循环的条件是<10,因此也就不在执行for里的代码了,也就不存在数组越界问题了。

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
58_avatar_small thzzl + 2 + 2 赞一个!

查看全部评分

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-9-19 23:08

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表