首页 > 试题广场 >

以下代码运行结果为?

[单选题]
以下代码运行结果为()
#include<stdio.h>
int main()
{
    uint32_t a = 100;
    while (a > 0)
    {
        --a;
    }
    printf("%d", a);
    return 0;
}


  • -1
  • 100
  • 0
  • 死循环
无符号数可以取到0 取不到负数
如果条件是a>=0 则死循环
另外 typedef unsigned long uint32_t;//   inttypes.h
发表于 2015-09-06 15:17:32 回复(2)
每次遇到这么简单的问题就在想,这个题目是不是有陷阱。想很久,很久,但是最后还是选的那个最初的答案
发表于 2015-08-14 15:28:04 回复(9)
答案:C
Unsigned int型数字最小为0,因此不是死循环,a到0就跳出循环,最后输出0
编辑于 2017-04-06 18:47:08 回复(5)
带有_t表示这些数据类型是通过typedef定义的,不是新的数据类型 uint32_t表示unsigned int类型
发表于 2018-11-13 16:27:35 回复(0)
uint32无符号没有负数,无限循环,这次不会错了,哈哈选D。一看答案,我擦,还有0,吐血。
编辑于 2016-08-24 12:35:16 回复(0)
带有_t表示这些数据类型是通过typedef定义的,不是新的数据类型; uint32_t表示unsigned int类型uint32_t 为无符号整数,最小为0; a到0就跳出循环,最后输出0,无符号数可以取到0, 取不到负数,因此不是死循环;如果条件是a>=0 则死循环 ( typedef unsigned long uint32_t; //inttypes.h)
发表于 2020-03-20 20:00:29 回复(0)
无符号数,最小值为0
等于0时循环结束;

如果条件是a>=0 则死循环
编辑于 2017-09-08 09:04:30 回复(0)
无符号数可以取到0 取不到负数
如果条件是a>=0 则死循环
另外 typedef unsigned long uint32_t;//   inttypes.h
发表于 2016-05-22 20:23:16 回复(0)
一看到是无符号整形就选了死循环,没看判断条件😒
编辑于 2024-03-19 14:27:29 回复(0)
uint32-t为无符号整数,最小胃0
发表于 2022-01-20 22:21:04 回复(0)
还以为是循环的遍数。。。
发表于 2021-03-17 07:52:28 回复(0)

uint32_t 为无符号整数,最小为0

发表于 2020-01-21 11:18:43 回复(0)
为啥条件变为a>=0就成死循环了 
a如果是负数的话就出错了是吗 出错了就是死循环了吗

呜呜求大佬指点
发表于 2019-01-10 17:04:10 回复(0)
uint unit!!!!!傻傻分不清楚
发表于 2018-03-22 21:03:42 回复(0)
果断一个陷阱,无符号整型是取不到负数的,因此,结果取到0就不会继续了
发表于 2017-09-07 16:18:48 回复(0)
    
发表于 2017-08-20 15:45:08 回复(0)
  1. typedef  unsigned  int             uint32_t;  //unsigned 非负
发表于 2017-04-05 11:13:12 回复(0)
无符号数可以取0
发表于 2015-09-07 16:50:20 回复(0)
应该是个死循环,因为是无符号数,永远是大于0
发表于 2015-09-05 15:00:44 回复(0)
c
发表于 2015-04-11 16:46:04 回复(0)