前言:
如果你正在学习C语言而又不知道从何处开始学,你可以跟着我一起学习C语言,在寒假期间我每天都会发一篇博客,里面有各种C语言的知识点,如果你想学习下去,想进步,就来每天跟着我一起打卡吧,期待我们能一起进步。
C语言的基本数据类型
一、整型
按占用内存大小和所能表示的数值范围又可分为短整型、标准整型、长整型、和长长整型,分别用关键字short int
、int
、long int
、long long int
,表示。
1.二进制、位、字节
内存的最小存储单位为字节(Byte),一个字节有8位(Bit)(即一个字节可以存放8个二进制的“0”或“1”)。
左边为高位,右边为低位,最高位是符号位,(“0”代表正数,“1”代表负数)剩下的就是数据位。
一个字节8位所能表示的取值范围从-128(1000 0000)~127(0111 1111),共256个。
两个字节16位所能表示的取值范围从-32768(1000 0000 0000 0000)~32767(0111 1111 1111 1111),共65536个。
根据不同的数值大小,使用不同大小字节的内存空间,既不浪费内存空间,又能放得下相应的数值,真正做到“物尽其用”。
类型 | 关键字 | 占用内存 | 取值范围 |
---|---|---|---|
短整型 | short int | 2字节 | -32768~32767 |
标准整型 | int | 4字节 | -2147483648~2147483647 |
长整型 | long int | 4字节 | -2147483648~2147483647 |
长长整型 | long long int | 8字节 | -9223372036854775808~9223372036854775807 |
2.无符号整型
对于这种没有符号位,全是数据位的整数类型,我们称之为无符号整型,它的关键字为unsigned
。之前所讲的四种整型类型都是有符号整型,它们也有个关键字signed
,不过通常不用写,也就是默认的整型就是有符号的,若想使用无符号的整型,前面加上unsigned
关键字即可。
类型 | 关键字 | 占用内存 | 取值范围 |
---|---|---|---|
无符号短整型 | unsigned short int | 2字节 | 0~65535 |
无符号标准整型 | unsigned int | 4字节 | 0~4294967295 |
无符号长整型 | unsigned long int | 4字节 | 0~4294967295 |
无符号长长整型 | unsigned long long int | 8字节 | 0~18446744073709551615 |
二、实型
C语言把这种带小数点的数值类型称为实型或浮点数类型。虽然实型与整型只有一字之差,但它确有和整型完全不同的内存存储方式。
实型分为三段进行存储的:符号位、阶码位、数据位
实型的内存大小和取值范围
类型 | 关键字 | 占用内存 | 精度 | 取值范围 |
---|---|---|---|---|
单精度浮点数类型 | float | 4字节 | 6~7位有效数字 | -3.402823E+038~3.402823E+038 |
双精度浮点数类型 | double | 8字节 | 15~16位有效数字 | -1.797693E+308~1.797693E+308 |
三、字符型
字符型关键词为char
,字符型就是一个字节的整型。
最初C语言规定将一字节的整型作为字符来使用,更确切地说,是将0~127这128个正整数作为字符使用,这就是大名鼎鼎的ASCII码(美国信息交换标准代码)。
字符型内存大小和取值范围
类型 | 关键字 | 占用内存 | 取值范围 |
---|---|---|---|
字符型 | char | 1字节 | -128~127 |
无符号字符型 | unsigned char | 1字节 | 0~255 |