当你选择了一种语言,意味着你还选择了一组技术、一个社区。——Joshua Bloch
▎数据类型
C语言变量的数据类型决定着变量分配的存储空间、能进行的运算操作以及数据的取值范围。
例如:int整型一般是分配4个字节存储空间,double双精度浮点型分配8个字节的存储空间;
变量的数据类型同时决定着该变量能取哪些值和进行哪些运算,例如整数类型只能取整数值,小数类型可以表示小数,整数和小数明显可以进行加减乘除数学运算。
C语言C89标准将数据类型分为4类:
- 基本数据类型:有符号和无符号整数类型、浮点类型(小数类型,不细分有无符号)
- 枚举类型:关键字enum定义
- void类型:空类型
- 派生类型:数组、结构、联合、函数、指针
▎基本类型
C语言中最基本数据类型是算术类型,包括整数类型和浮点数类型。
- 字符类型、枚举类型本质也是整数类型;
- 整数类型细分有符号和无符号整数、长整数和短整数;
- 不同整数类型区别是存储长度不一样、取值范围大小不一样;
- 浮点数类型比较简单,都是有符号的,分为单精度和双精度浮点数。
▓ 整数类型声明包括:
- 字符类型char,至于默认是有符号或无符号由编译器实现自定义
- 有符号字符类型:signed char
- 无符号字符类型:unsigned char
- 有符号短整型:short, signed short, short int, signed short int
- 无符号短整型:unsigned short, unsigned short int
- 有符号整型:int, signed, signed int
- 无符号整型:unsigned, unsigned int
- 有符号长整型:long, signed long, long int, signed long int
- 无符号长整型:unsigned long, unsigned long int
▓ 浮点类型声明包括:
- 单精度浮点型:float
- 双精度浮点型:double
- 长双精度浮点型:long double
注:
1、长整型和短整型有多种写法,同一行中全部列出来,而且多个关键字顺序可以任意组合;
2、常用基本数据类型大小:char 1字节,int 4字节, long 8字节,float 4字节,double 8字节;
3、每种类型存储空间大小,所占字节数,和计算机位数有关,不同机器数据类型大小不一样,可以通过 sizeof()关键字进行每种类型大小的计算,确定存储空间和取值范围。
▎枚举类型
枚举类型本质上也是算术类型,它定义了多个命名整数常量的集合。
- enum 枚举名{名称1,名称2,……}; 名称1默认值为0,名称2值为1,相当于定义了整数值的集合,并且给每个值命名
- enum 枚举名{名称1 = 10,名称2 = 20,……}; 自定义枚举中每个元素对应的整数值。
▎派生类型
派生类型不能单独存在,基本是从基本类型、void类型、枚举类型组合构造而来。
- 数组类型:[]定义数组,例如int a[100]; 声明int型数组,数组大小100
- 结构类型:struct 结构名{} 关键字声明结构类型
- 联合类型: union 联合名{} 关键字声明联合类型(也有书籍翻译为共用体)
- 函数类型:返回值类型 函数名(参数类型1 参数1, 参数类型2 参数2,...) {}
- 指针类型:*声明指针,指针的值表示内存地址,例如int *p; 声明指向int型的指针
▎void类型
空类型,特殊类型,表示没有可用的值,用于以下三种场景:
- 函数参数void,表示该函数不需要参数;
- 函数返回值void,表示该函数没有返回值或返回值为空;
- 指针类型void *,表示该指针转换为任意数据类型的指针。
看完的你有没有记住呢?没记住的话记得点收藏哦!
对于热爱编程的人来说,有一群一起学习一起解答的小伙伴很重要!笔者的专栏有一个C语言/C++编程零基础入门学习交流俱乐部(群),还有学习视频文件,欢迎初学者和正在进阶中的小伙伴们!