📜  C | C测验– 113 |问题1

📅  最后修改于: 2021-05-13 21:53:28             🧑  作者: Mango

#include 
  
int main()
{
    unsigned int i = 65000;
    while (i++ != 0);
    printf("%d", i);
    return 0;
}

(A)无限循环
(B) 0
(C) 1
(D)运行时错误答案: (C)
说明:结果将为1,但是经过了很长时间,因为while循环将继续进行直到我变成4294967295(假设unsigned int使用4个字节存储)并且由于我在下一个++操作中unsigned int的最高限制是4294967295,所以将变为零,我们将退出循环并打印1。

由于花费的时间很长,因此在线编译器可能会在超出时间限制的错误的情况下终止程序。如果使用unsigned short int代替unsigned int,则结果(1)可能会更快。
这个问题的测验