【飞郁2022新课程】07 - 数据类型 和数据宽度
一、数据宽度
首先在了解数据类型之前 我们要了解数据宽度
任何的数据类型都是有宽度的,宽度就是表示这种数据类型的数据占多大的空间。
数据宽度的两个基本单位是字节和位。
这里的位说的是二进制,一位就是一位二进制(只能用0或者1 来表示)
位是计算机最小的储存单位 。
一字节等于8位,等于两位16进制,字节是我们应用的最小单位。
这里有同学可能会问道?
为什么等于2位十六进制
那是因为比如:
8个二进制1 组成1字节 1111 1111 每4个二进制位最大表示的数为 也就是说4个二进制位表示的范围可以在0到15 这刚好符合16进制的特性 因为16进制的范围大小也是0到15 这样看来 1字节8位二进制等于2位16进制 是顺理成章的事了!
这里要特别说明下:
以后的学习中最小的宽度单位就是字节也就是两位16进制
二、数据类型
在C语言中 有很多基本类型
void类型 整数类型 布尔型类型 浮点数类型 字符类型 从字面意思上 可以简单的理解下
然后咋门用这些类型 定义不同类型的变量
下面我们一一讲解
2.1.void 无类型
1.不可以定义变量
2.很多时候我们把void用在函数的返回值 和 函数参数的传递上
3.例如:
|
|
这个main函数这样 就表示无返回值
2.2.整数类型
1.以下都是整数型只是数据宽度不一样而已也就是表示的数字范围大小不同
byte 1字节
short word 2字节
int dword long 4字节
long long qword 8字节
等等
同时有的类型是根据系统的不同而定所占字节大小 就比如32位系统 和64位 就有所不同
这里给大家演示下:
在讲解之前 需要了解下sizeof 这个关键字主要用于计算类型的所占字节大小
注意头文件:使用 word dword qword 类型 需要头文件 #include “windows.h”
|
|
看了上面的代码 有的同学对printf 可能不太明白怎么使用 以后章节我们会细细道来不要担心
2.3.bool 布尔类型
0为false 可以用0来表示为“假”
非0为true 可以用1表示或者任意一个非0的值来表示为“真”
对于布尔类型来判断真假的话:0为false ,1为true
对于其他类型来判断真假的话:0为false ,非0为true
看看下面一小段代码
|
|
编译后可以看到打印信息为:a不是等于123,因为是布尔类型,所以等于一个非0的布尔类型的1,也就是为真
三、浮点数类型
主要有2种类型
float 4字节
double 8字节
他们和整数不同 切记!
同时小数点的后面的精度上 也不同 明显double 要比float高
这里我们也看一小段代码
|
|
可以看到大小不一样,这也是精度不同的原因
四、字符和字符串
4.1.字符
那么这里我们还需要讲解 字符的表示
什么是字符了 其实也就是符号 包含了 字母 符号 等等 比如a b c d 字符
1.首先字符的定义是在单引号’a’中 然后赋值给字符变量
|
|
可以看到 char类型占1字节
4.2.字符数组
接下来是字符串 比字符 从字面上讲 多了一个字 “串”
顾名思义就是 把多个字符串在一起就成了字符串
在这里 我们需要提前了解下数组的概念
其实也很好理解 数组也就是把多个数紧紧的挨在一起
数组
这里就简单的了解下
比如
|
|
字符数组
接下来 我们把int类型 换成 char 类型看看
|
|
我们这里打印下看看
|
|
4.3.字符串
看到打印信息 所以?
这里可能有的同学懂了
似乎明白了什么?
其实字符串和字符数组差不多一个意思 只是说字符串要注意的是 是以’\0’为结尾(也就是数值为0) 也就是说
把上面的代码需要替换一下
|
|
4.4.字符串和字符数组区别:
通过上面比较我们看到了字符数组不是字符串虽然在控制台上显示出来没有看出任何区别,其实字符串最后还会多一个\0字符的存在, 只是说这个\0是不会打印显示出来的,所以我们看到的都是heart
好了C语言的基本数据类型 我们就讲到这里 其他复杂的类型 后面会讲解到