所谓“类型”,就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作
数据。而c语言则提供了丰富的数据类型来描述生活中的各种数据。C语言的数据类型可分为两大类:内置类型和自定义类型。(下文主要介绍内置类型)
首先可以把内置类型分为四类。(在使用时中括号内部分可省略)
1.字符型
char //character
[signed] char //注:signed有符号的
unsigned char //注:unsigned⽆符号的(下同)
2.整型
//短整型
short [int]
[signed] short [int]
unsigned short [int]
//整型
int
[signed] int
unsigned int
float
double
long double
//⻓整型
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.布尔类型
C 语⾔原来并没有为布尔值单独设置⼀个类型,⽽是使⽤整数 0 表⽰假,⾮零值表⽰真。
在 C99 中也引⼊了 布尔类型 ,是专⻔表⽰真假的。布尔类型的使⽤得包含头⽂件 <stdbool.h> 布尔类型变量的取值是: true (真)或者 false(假)
部分代码演⽰:
_Bool flag = true;
if (flag)
printf("i like C\n");
其中存在相关定义:
#define bool _Bool(在使用过程中,bool和_Bool效果相同)
#define false 0
#define true 1
最后各种数据类型的⻓度
用于计算的程序
#include <stdio.h>
int main()
{
printf("%zd\n", sizeof(char));// 1
printf("%zd\n", sizeof(_Bool));// 1
printf("%zd\n", sizeof(short));// 2
printf("%zd\n", sizeof(int));// 4
printf("%zd\n", sizeof(long));// 4
printf("%zd\n", sizeof(long long));// 8
printf("%zd\n", sizeof(float));// 4
printf("%zd\n", sizeof(double));// 8
printf("%zd\n", sizeof(long double));// 8
return 0;
}
计算结果:
1 1 2 4 4 8 4 8 8(为方便查看注释在程序旁)