看看这个是不是死循环?

apl330 2009-06-01 11:20:04

#include "stdio.h"
main()
{
int k=0;
do ++k;
while(k>=0);
}


我用开发软件试过,不是死循环,为什么呢?
谢谢。
...全文
77 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞天御剑流 2009-06-02
  • 打赏
  • 举报
回复
do 后只有一条语句,这种情况下可以把大括号省略。
apl330 2009-06-02
  • 打赏
  • 举报
回复
但我还有一个问题,就是那个DO后面不一定要有大括号的,是吗?
飞天御剑流 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 arong1234 的回复:]
当k自加超过0x7FFFFFFF,它就是负数了,楼主要学习学习补码的知识
[/Quote]

请自己去查查标准是怎么说吧。
飞天御剑流 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 arong1234 的回复:]
这不是未定义行为,这有准确定义的
引用 2 楼 supermegaboy 的回复:
当然不是死循环啦,int有范围的嘛,超过范围就溢出了,编译器如何处理溢出是未定义行为。
[/Quote]

给你看标准的摘录:

c90:

3.16 undefined behavior:
...............

2 An example of undefined behavior is the behavior on integer overflow.


c99:

3.4.3
1 undefined behavior
............

3 EXAMPLE An example of undefined behavior is the behavior on integer overflow.


c++98、2003

5 Expressions [expr]
.....................
5 If during the evaluation of an expression, the result is not mathematically defined or not in the range of representable
values for its type, the behavior is undefined, unless such an expression is a constant expression (5.19), in which case the program is ill-formed.
FlyBir999 2009-06-01
  • 打赏
  • 举报
回复
学习了
Skyhoo 2009-06-01
  • 打赏
  • 举报
回复
这样写确实看不出来死循环,你加一句 printf("%d",k);
就看到效果了
零起跑线 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 oyster2008 的回复:]
正数加法溢出,变成负数了,所以当然不满足k>=0的条件了
[/Quote]
学习了
gab2iel 2009-06-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 oyster2008 的回复:]
正数加法溢出,变成负数了,所以当然不满足k>=0的条件了
[/Quote]
hei hei
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 arong1234 的回复:]
当k自加超过0x7FFFFFFF,它就是负数了,楼主要学习学习补码的知识

[/Quote]恩,同意
arong1234 2009-06-01
  • 打赏
  • 举报
回复
这不是未定义行为,这有准确定义的
[Quote=引用 2 楼 supermegaboy 的回复:]
当然不是死循环啦,int有范围的嘛,超过范围就溢出了,编译器如何处理溢出是未定义行为。
[/Quote]
arong1234 2009-06-01
  • 打赏
  • 举报
回复
当k自加超过0x7FFFFFFF,它就是负数了,楼主要学习学习补码的知识
飞天御剑流 2009-06-01
  • 打赏
  • 举报
回复
当然不是死循环啦,int有范围的嘛,超过范围就溢出了,编译器如何处理溢出是未定义行为。
oyster2008 2009-06-01
  • 打赏
  • 举报
回复
正数加法溢出,变成负数了,所以当然不满足k>=0的条件了

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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