kayyakkay
wechat aheavener
采纳率50%
2019-01-18 12:29

计算机系统的考题,为什么这个是死循环

已采纳
#include <stdio.h>
#define DELTA sizeof(int)
int main()
{
    int i;
    for(i=40;i-DELTA>=0;i-=DELTA)
        printf("%d",i);
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • wuerlongxin wuerlongxin 2年前

    sizeof(int)的返回类型:SIZE_T,SIZE_T是标准C库中定义的,应为unsigned int,在64位系统中为 long unsigned int。int默认为有符号型。当有符号型减去无符号型时有符号型会强制转换为无符号型,其结果也是无符号型,必然大于等于0,所以会是死循环。

    点赞 3 评论 复制链接分享
  • weixin_43414421 张旻昕 2年前

    i-DELTA会转化为无符号型,所以一直不会等于零。

    点赞 1 评论 复制链接分享
  • qq_33926170 qq_33926170 2年前

    这个怎么说也不可能是死循环的

    点赞 评论 复制链接分享