C语言中内置数据类型可以分为四类,分别是:字符型、整型、浮点型和布尔类型。
1.内置数据类型
(1)字符型
char
signed char
unsigned char
//signed意为有符号的
//unsigned意为无符号的
(2)整型
//[]括起来的内容是可以省去的
//短整型
short [int]
[signed] short [int]
unsigned short [int]
//整型
int
[signed] int
unsigned int
//长整型
long [int]
[signed] long [int]
unsigned long [int]
//更长的整型
//C99引入
long long [int]
[signed] long long int
unsigned long long int
(3)浮点型
float //单精度浮点数
double //双精度浮点数
long double
(4)布尔类型
布尔类型在C99中引入,专门用于表示真与假。
#include <stdbool.h>
_Bool
布尔类型的使用要包含头文件<stdbool.h>
取值为true或false.
演示:
2.各种类型的长度
每一种数据类型都有自己的长度。使用一种数据类型时,内存中就会分配出一定的空间,分配的空间大小就是指这种数据类型的长度。
(1)计算长度大小 — sizeof操作符
sizeof 是⼀个关键字,也是操作符,专⻔是⽤来计算sizeof操作符数的类型⻓度的,单位是字节。 sizeof 操作符的操作对象可以是类型,也可是变量或者表达式。
#include <stdio.h>
int main()
{
int a = 10;
printf("%zd\n", sizeof(a));
printf("%zd\n", sizeof a);//a是变量的名字,可以省略掉sizeof后边的()
printf("%zd\n", sizeof(int));
printf("%zd\n", sizeof(3 + 3.5));
return 0;
}
(2)数据类型长度
x86:
x64:
3. signed和unsigned
C 语⾔使⽤ signed 和 unsigned 关键字修饰字符型和整型类型。
signed 关键字,表⽰⼀个类型带有正负号,包含负值;
unsigned 关键字,表⽰该类型不带有正负号,只能表⽰零和正整数。
对于 int 类型,默认是带有正负号的,也就是说 int 等同于 signed int 。
由于这是默认情况,关键字 signed ⼀般都省略不写,但是写了也不算错。
4.数据类型的取值范围
上述的数据类型很多,尤其数整型类型就有short、int、long、long long 四种,为什么呢?
其实每⼀种数据类型有⾃⼰的取值范围,也就是存储的数值的最⼤值和最⼩值的区间,有了丰富的类 型,我们就可以在适当的场景下去选择适合的类型。