当前位置:  开发笔记 > 编程语言 > 正文

为什么这个for循环停止了?

如何解决《为什么这个for循环停止了?》经验,为你挑选了1个好方法。

我试图用这个代码为try-catch测试产生一个错误,我希望在访问a[3](第四个)元素时会出错.即使没有得到错误,for循环也必须在五次迭代后停止,这种情况永远不会发生.

int a[3] = {1, 2, 3};
for(int i = 0; i < 5; i++)
{
    std::cout << i << ": " << a[i] << std::endl;
}

输出:

0: 1
1: 2
2: 3
3: 1970756548
4: 4201552
5: 2686800
6: 2130567168
7: 0
8: 0
9: 2686824
10: 4198992
.
.
.
4150: 0
4151: 0
4152: 0
4153: 0
4154: 0

LogicStuff.. 7

它是未定义的行为(UB),您的数组中没有(至少)五个元素.你不能抓住UB,例外就是我们catch.这里没有更多的争论,但请参阅评论部分中的有趣链接.



1> LogicStuff..:

它是未定义的行为(UB),您的数组中没有(至少)五个元素.你不能抓住UB,例外就是我们catch.这里没有更多的争论,但请参阅评论部分中的有趣链接.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有