如图所示代码:
代码运行结果为:
这是什么原因呢?
解析:
因为unsigned int是无符号整形,而我们的for循环的条件是
所以我们会一直循环下去,至于我们的结果为什么会是
一个unsigned int类型是4个字节,38位,那么它的最大值应该是32个1
1111 1111 1111 1111 1111 1111 1111 1111
这个二进制转成十进制之后应该是:
4294967295
我们都知道,假如不看符号,无限打印下去的话结果应该是这样的:
我们发现值越来越小,而我们Unsigned int是无符号数,是要看符号的,但是我们仍然要让它往下走结果越来越小,那么我们从4294967295这个最大值开始,向下依次减1,让它越来越小
那么如果按照%d来打印呢
我们发现虽然还是Unsigned int,但是结果是按照%d来打印的
第二个代码:
运行结果为:
解析: