C语言基础unsigned short类型用于循环的一个难点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言基础unsigned short类型用于循环的一个难点相关的知识,希望对你有一定的参考价值。

我在我的知识星球:“C语言解惑课堂”里的第一篇提出一个问题:【第1篇】【C语言基础】【unsigned short类型用于循环的一个难点】
要查看更多的C语言难点解析或者需要提问的同学,微信扫扫文末我的星球二维码加入吧!

一、【问题】

同学们,今天来道C语言比较有意思的题,C程序代码见下图。
技术图片

for循环中我给了变量para一个初始值1,也让para自增1,但是没有指定for循环结束的条件。你觉得有问题吗?会不会是一个无穷尽的循环?如果有问题你打算怎么修改呢?

二、【解惑】

这个循环是会终止的,不会永远循环下去。

在我的PC机上,我使用sizeof求出了“unsigned short”类型变量是占用了两个字节,那么取值范围是“0-65535”。在这段C程序中,unsigned short类型变量para的初始值是1,只要它不是0,for循环就会一直执行。

在每次执行完printf函数后,变量para都会自增1,一直到para自增为65535,此时变量para再加1你可别以为会变成65536!你要知道此时变量para溢出了,又回到了取值范围的最小点:0。

变量para为0,那么此时for循环也就结束了,也就是说printf函数输出1到65535后程序结束!

三、“C语言解惑课堂”星球加入卡片

技术图片

以上是关于C语言基础unsigned short类型用于循环的一个难点的主要内容,如果未能解决你的问题,请参考以下文章

C语言 请问signed char,unsigned char,short,unsigned sh

在C语言中,unsigned char是啥类型

c语言中 int unsigned 类型转换

将一个数组所有的值赋值为1,0,-1怎么弄,不用循环

在C语言中,unsigned char是啥类型

c语言中怎么把不同类型转化成同一类型?