当前位置: 首页 > news >正文

第2讲:C语言数据类型和变量

目录

1.数据类型介绍

2.signed和unsigned

3.数据类型的取值范围


1.数据类型介绍

C语言提供了丰富的数据类型来描述生活中的各种数据。

使用整数类型来描述整数,使用字符类型来描述字符,使用浮点型类型来描述小数。

所谓“类型”,就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作数据。

C语言提供的各种数据类型如下所示,本章节主要探讨内置数据类型。

1.1字符型

字符的英文单词是character,在C语言中使用char表示字符类型。

1.char //character

2.[signed] char //有符号的

3.[unsigned] char //无符号的

1.2整型

整数的英文单词是integer,在C语言中使用int表示整型类型。

1.//短整型

short [int]

[signed] short [int]

unsigned short [int]

2.//整型

int

[signed] int

unsigned int

3.//长整型

long [int]

[signed] long [int]

unsigned long [int]

4.//更长的整型

//C99中引入

long long [int]

[signed] long long [int]

unsigned long long [int]

1.3浮点类型

1.float //单精度浮点型 4字节

2.double //双精度浮点型 8字节

3.long double //长双精度浮点型 >=8字节

1.4布尔类型

C语言原来并没有为布尔值单独设置一个类型,而是使用整数0表示假,非0值表示值。

在C99中也引入了布尔类型,是专门表示真假的。

1._Bool

布尔类型的使用得包含头文件<stdbool.h>

布尔类型变量的取值是:true或者false。

代码演示:

1.5各种数据类型长度

每一种数据类型都有自己的长度,使用不同的数据类型,能够创建出不同长度的变量,变量长度的不同,存储的数据范围就有所差异。

1.5.1 sizeof操作符

sizeof是一个关键字,也是操作符,专门是用来计算sizeof的操作符数的类型长度的,单位是字节。

sizeof操作符的操作数可以是类型,也可是变量或者表达式。

1. sizeof(类型)

2.sizeof(表达式)

sizeof 的操作数如果不是类型,是表达式的时候,可以省略掉后边的括号的。

sizeof 后边的表达式是不真实参与运算的,根据表达式的类型来得出大小。

sizeof 的计算结果是size_t 类型的。

1.5.2数据类型长度

参考资料:数据类型⻓度和取值范围-官⽅介绍

2.signed和unsigned

C语言使用signed和unsigned关键字修饰字符型整型类型的。

signed关键字,表示一个类型带有正负号,包含负值;

unsigned关键字,表示该类型不带有正负号,只能表示0和正整数。

对于int类型,默认是带有正负号的,也就是说int等同于signed int。

由于这是默认情况,关键字signed一般都省略不写。

int类型也可以不带正负号,只表示非负整数,这时就必须使用关键字unsigned声明变量。

整数变量声明为unsigned的好处是,同样长度的内存能够表示的最大整数值,增大了一倍。

比如,16位的signed short int的取值范围是:-32768~32767,最大是32767;而unsigned short int的取值范围是:0~65535,最大值增大到了65535。32位的signed int的取值范围可以参看limits.h中给出的定义。

字符类型char也可以设置signed和unsigned。

3.数据类型的取值范围

上述的数据类型很多,尤其整型类型就有short、int、long、longlong四种,为什么呢?

其实每一种数据类型有自己的取值范围,也就是存储的数值最大值和最小值的区间,有了丰富的类型,我们就可以在适当的场景下去选择适合的类型。如果要查看当前系统上不同数据类型的极限值:limits.h文件中说明了整型类型的取值范围。

float.h这个头文件中说明浮点型类型的取值范围。

为了代码的可移植性,需要知道某种数据类型的极限值时,应该尽量使用这些常量。

  • SCHAR_MINSCHAR_MAX:signed char 的最⼩值和最⼤值。
  • SHRT_MINSHRT_MAX:short 的最⼩值和最⼤值。
  • INT_MININT_MAX:int 的最⼩值和最⼤值。
  • LONG_MINLONG_MAX:long 的最⼩值和最⼤值。
  • LLONG_MINLLONG_MAX:long long 的最⼩值和最⼤值。
  • UCHAR_MAX:unsigned char 的最⼤值。
  • USHRT_MAX:unsigned short 的最⼤值。
  • UINT_MAX:unsigned int 的最⼤值。
  • ULONG_MAX:unsigned long 的最⼤值。
  • ULLONG_MAX:unsigned long long 的最⼤值。
http://www.jsqmd.com/news/621377/

相关文章:

  • 鹏哥c语言复习第十一讲----指针1基础概念
  • 查重不用愁!PaperXie 四大检测模块,一站式解决论文重复率 + AIGC 率难题
  • 用confyUI搭建AI动漫工作流 |【小白篇】|【解释】
  • GME-Qwen2-VL-2B-Instruct保姆级教程:Linux服务器后台常驻服务部署方案
  • 2026年名酒回收全解析:选服务商必看的7个核心维度 - 优质品牌商家
  • Shiftbrite LED驱动原理与STM32嵌入式实现
  • LangChain进阶(一)Tools外部能力接入
  • ICC2与Innovus实战:手把手教你搞定Reg2ICG的Setup违例(附PT验证技巧)
  • OpenClaw v2026.4.9 初始化安装推荐“技能包”(Skills)
  • 为什么SITS2026要求“AI能力必须嵌入主干流程”?——基于17家头部企业POC数据的因果链分析(含RPA+LLM耦合失效预警模型)
  • CXL协议中的寄存器访问机制:配置空间与内存映射空间详解
  • 2026年怎么选电伴热施工安装厂家:廊坊自调控电伴热带、廊坊自限温电伴热带、廊坊防爆型电伴热带、廊坊发热电缆、廊坊合金丝发热电缆选择指南 - 优质品牌商家
  • golang如何消除边界检查提升性能_golang边界检查消除性能提升思路
  • Hyperf方案 飞书机器人消息推送 - 实现向指定飞书群组或用户发送文本/富文本/图片消息(基本版本)
  • 11.从Demo到工程:RAG/Agent系统的日志、配置与异常处理
  • 别再死记硬背!用Multisim仿真带你直观理解TTL反相器的工作原理
  • Mbed平台任意引脚软件PWM库实现与应用
  • SSD1289 TFT-LCD驱动开发:Cariad车载平台实战指南
  • DeepSeek与LangGraph共享单车需求数据预测:LSTM与XGBoost多模型融合方法及Streamlit可视化应用 | 附代码数据
  • OpenAI团队编程Agent的Harness工程实践
  • 2026年靠谱的光化反应釜/LED 光催化反应釜厂家综合对比分析 - 品牌宣传支持者
  • hybrid实验
  • TLCBuffer:嵌入式时序数据的时间长度压缩缓冲区
  • 2026代理记账收费标准top3名录:深圳注册公司后税务登记及记账报税/深圳注册公司常见原因及技巧/选择指南 - 优质品牌商家
  • LangChain模块(六)Agent智能体
  • Google 迎来「DeepSeek 时刻」:TurboQuant算法实现bit无损、×加速、×压缩、零预处理督
  • FlashStringTable:嵌入式Arduino的PROGMEM字符串高效管理方案
  • 新能源车全生命周期测试标准体系:从NVH性能到环境适应性及关键部件验证
  • LangChain进阶(三)CAMELBabyAGI
  • 2026年收费合理的昆山劳动律师热选事务所推荐 - 品牌宣传支持者