文章目录
- 前言
- 1.三种基本数据类型的存储特性
- 2. 字符型
- 2.1使用场景
- 2.2使用规范
- 3.整型
- 3.1使用场景
- 3.2使用规范
- 4.浮点型
- 4.1使用场景
- 4.2使用规范
- 5..基础数据类型的取值范围
- 5.1字符型
- 5.2整形
- 5.3浮点型
- 6.总结
前言
初学 C 语言时,“数据类型”就像盖房子用的砖——选对了,结构才稳;选错了,后面全是坑
这篇文章不会讲太多理论,而是直接从字符型、整型、浮点型这三种最常用的类型入手,帮你搞清楚:
什么时候用哪个、怎么用才对、取值范围有多大
读完这一篇,你至少能写出更规范、更安全的变量定义,不会再被“为啥存小数变整数”这种问题困扰
可能有人第一次接触C语言会在想是什么是数据类型?生活中存在着各种各样的数据,像一个人的身份信息,包括姓名、年龄、身高…,这些都是数据;姓名是文本,年龄是整数,身高是小数,自然而然的衍生出不同的数据类型来存储这些数据
1.三种基本数据类型的存储特性
| 数据类型 | 关键字(常用) | 占用内存 | 存储内容 |
|---|---|---|---|
| 字符型 | char | 1字节 | 单个字符 |
| 整型 | int | 4字节 | 整数 |
| 浮点型 | float | 4字节 | 小数 |
2. 字符型
2.1使用场景
字符型存储单个字符,如字母、标点符号……(如果需要存储多个字符(如姓名),需要使用字符数组或指针,后续会讲解)
2.2使用规范
示例
#include<stdio.h>intmain(){chara='q';charb='.';printf("a = %c\n",a);printf("b = %c\n",b);return0;}输出的占位符:%c
换行:\n
⚠️警告:
在初始化时必须使用单引号(’ ')包裹字符,同时char也只能存储一个字符
3.整型
3.1使用场景
整型主要储存年龄,学号…,这一类不用小数的数据。
3.2使用规范
示例
intmain(){intage=10;intscore=80.5;printf("age = %d\n",age);printf("score = %d\n",score);return0;}输出的占位符:%d
💡提示:
不要用于存储小数,不然只会截断整数部分进行存储(3.14 → 3)
4.浮点型
4.1使用场景
浮点型存储小数,像身高,体重……
4.2使用规范
示例
intmain(){floatf1=10.1f;floatf2=20.5f;printf("f1 = %f\n",f1);printf("f2 = %f\n",f1);return0;}输出的占位符:%f
float f1 = 10.1f: 在后面加上了一个 f,是因为编译器默认为 double 类型,f 的作用是明确数据类型是 float
⚠️注意:
如果不加 f,10.1是 double 类型,赋值给 float 时会发生隐式类型转换,虽然大多数情况没问题,但加f更规范,也能避免精度警告
5…基础数据类型的取值范围
5.1字符型
| 字符型 | 取值范围 |
|---|---|
| char | -128~127 |
| unsigned char | 0-255 |
符号位:最高位是符号位(0 为正,1 为负),unsigned就定义为无符号位,全是有效数字位
ASCll值:字符在计算机中是以 ASCII 码的形式存储的(即字符对应一个整数值)
char:可以存储整数,但是代表的是整数所对应的 ASCII 码值(%c打印出来时字符,%d打印出来就是整数)
5.2整形
| 整形 | 取值范围 | 无符号取值范围 |
|---|---|---|
| short | -215~ 215-1 | 0~216-1 |
| int | -231~ 231-1 | 0~232-1 |
| long | -231~ 231-1 | 0~232-1 |
| long long | -263~ 263-1 | 0~264-1 |
5.3浮点型
| 浮点型 | 取值范围 |
|---|---|
| float | ±10-38~±1038 |
| double | ±10-308~±10308 |
💡提示:
浮点型默认就是无符号的
6.总结
存单个字符→char
存整数→int,如果整数很大使用long或者long long
存小数→float,如果需要更大的精度可用double(占位符下一篇博客都会讲解)
如果这篇文章对你学习 C 语言有帮助,麻烦动动手指点赞,关注,加收藏,你的支持是持续更新干货的最大动力!