我在我的知识星球:“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类型用于循环的一个难点的更多相关文章

  1. C语言基础(6)-char类型

    1. char常量.变量 使用单引号‘’引起来的就是char的常量 ‘a’是一个char类型的常量 “a”是一个字符串类型的常量 1是一个int型的常量 ‘1’是一个char型的常量 char a; ...

  2. Java入门 - 语言基础 - 06.变量类型

    原文地址:http://www.work100.net/training/java-variable-type.html 更多教程:光束云 - 免费课程 变量类型 序号 文内章节 视频 1 概述 2 ...

  3. go语言基础之复合类型

    1.分类 类型 名称 长度 默认值 说明 pointer 指针 nil array 数组 0 slice 切片 nil 引⽤类型 map 字典 nil 引⽤类型 struct 结构体 2.指针 指针是 ...

  4. Go语言基础之6--值类型和引用类型

    一. 引用类型 引用类型理解为(C语言):指针 Golang中只有三种引用类型:slice(切片).map(字典).channel(管道): 实例1-1 package main import &qu ...

  5. C语言基础:指针类型与指针和数组、字符串的关系

    //指针变量就是用来存储地址的,只能存储地址 格式:  int  *p;  这个p为指针变量:指针变量占8个字节 类型是用来说明这个指针指向的类型: 比如上边的int代表这个指针变量会指向int类型的 ...

  6. python自动化--语言基础1--数据类型及类型转换

    Python中核心的数据类型有哪些?变量(数字.字符串.元组.列表.字典) 什么是数据的不可变性?哪些数据类型具有不可变性数据的不可变是指数据不可更改,比如: a = ("abc" ...

  7. go语言基础之函数类型

    1.函数类型 示例: package main import "fmt" func Add(a, b int) int { return a + b } func main() { ...

  8. go语言基础之复数类型

    1.复数类型 示例1: package main //必须有一个main包 import "fmt" func main() { var t complex128 //声明 t = ...

  9. go语言基础之字符串类型 和 字符与字符串类型的区别

    1.字符串类型 示例1: package main //必须有一个main包 import "fmt" func main() { var str1 string str1 = & ...

随机推荐

  1. signed char类型取值范围计算

    在C语言程序中,给定一个类型,如何计算这个类型变量的取值范围呢?比如有一个字符型变量定义如下: signed char c: 这个字符变量c的取值范围是[-128,127],是计算出来的呢? 假设字符 ...

  2. Java编程思想:擦除的补偿(数组泛型处,我有很多细节没有研究)

    import sun.net.www.content.text.Generic; import java.lang.reflect.Array; import java.util.ArrayList; ...

  3. nu.xom:Element

    Element: 机翻 Element(Element element) :通过深复制,创建一个element Element(String name) :创建一个没有命名空间的element Ele ...

  4. python如何将一个多位数数值转换为列表类型

    现在:a = 10,由于暂时没找到更好的方法,且使用下面的方法进行转换. 目标:转化为['10'] 以下为错误尝试: 1.直接转换,提示整型对象不可迭代. 2.先转换为字符串,再转换为列表,发现被分成 ...

  5. React躬行记(9)——组件通信

    根据组件之间的嵌套关系(即层级关系)可分为4种通信方式:父子.兄弟.跨级和无级. 一.父子通信 在React中,数据是自顶向下单向流动的,而父组件通过props向子组件传递需要的信息是组件之间最常见的 ...

  6. Java提供的几种线程池

    线程池,顾名思义,放线程的池子嘛,这个池子可以存放多少线程取决于你自己采用什么样的线程池,你的硬件资源,以及并发线程的数量.JDK提供了下面的四种线程池: 固定线程数的线程池 最简单的 在Java中创 ...

  7. 四、利用SQL Server 2008 R2创建自动备份计划

    (转) 本文主要利用SQL Server 2008 R2自带的"维护计划"创建一个自动备份数据的任务. 首先,启动 Sql Management studio,确保"SQ ...

  8. python基础——变量

    变量是只不过保留的内存位置用来存储值.这意味着,当创建一个变量,那么它在内存中保留一些空间. 根据一个变量的数据类型,解释器分配内存,并决定如何可以被存储在所保留的内存中.因此,通过分配不同的数据类型 ...

  9. session对象和cookie对象的区别

    1.cookie数据存放在客户的浏览器上,session数据放在服务器上2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session3.ses ...

  10. 2. Java基本数据类型及运算符

    1. 计算机数制 1.1 计算机信息单位 阅读二进制.字节.字长,回答以下问题: 1. 计算机中采用什么进制存储信息,它的优点是什么 2. 什么是位.字节 3. K.M.G.T.P之间的转换 4. 什 ...