c语言有哪些数据类型:分类与选用规则

c语言有哪些数据类型,整体分为基础类型、构造类型、指针类型、空类型四大类,基础类型包含字符型、短整型、整型、长整型、浮点型、双精度浮点型,不同类型占用内存字节数随编译平台变化,32位与64位GCC编译器下部分类型长度不一致,你编写变量存储数字、文字时优先选基础类型,需要打包多个变量时选用构造类型,存储地址信息使用指针类型,无返回值函数定义用空类型,该分类体系适用于C89、C99标准,C99新增的布尔类型、长长整型属于扩展基础类型,只支持开启C99及以上编译选项的工程,老编译器无法识别。

c语言基础数据类型

字符型char,占用1字节,用来存放单个ASCII字符,也可以当作范围较小的整数参与运算,分为有符号char和无符号unsignedchar,有符号取值区间一般是-128到127,无符号取值区间是0到255,读取键盘单个字符、标记状态标识时经常使用这个类型。

整型家族包含short、int、long、longlong,short通常2字节,int在32位环境占4字节、64位环境大多保持4字节,long在32位环境4字节、64位环境8字节,longlong统一8字节,每个整型都有无符号版本unsigned,无符号整型只存储非负数,计算循环计数、数组下标时使用无符号整型可以减少负数越界问题。

浮点型float、double,float占4字节,精度大约6到7位有效数字,适合对精度要求不高的小数计算,double占8字节,精度大约15到16位有效数字,绝大多数小数运算场景优先选择double,浮点类型不能精准表示所有十进制小数,对比相等不能直接用==运算符。

_Bool布尔类型是C99新增类型,占用1字节,取值只有0和1,0代表假,非0值赋值后存储为1,配合头文件stdbool.h可以直接使用bool、true、false简写,只在C99及更高版本标准下生效。

c语言构造、指针、空数据类型

构造类型由多种基础类型组合生成,包含结构体struct、共用体union、枚举enum,结构体可以把多个不同类型变量打包成一个整体,用来描述一条用户信息、一条商品记录这类复合数据;共用体所有成员共用同一块内存空间,同一时间只能有效使用其中一个成员,用来做类型转换、协议解析;枚举enum用名字代替固定常量,提升代码可读性,减少魔法数字。

类型类别存储内容典型用途使用限制
指针类型内存地址传地址、动态内存、数组操作野指针会造成程序崩溃
空类型void无有效数据无返回函数、泛型指针声明不能定义普通void变量

指针类型存放内存地址,指针本身占用字节数等于当前平台地址宽度,32位平台指针4字节,64位平台指针8字节,你用指针传递变量时可以避免拷贝大块数据,提升程序运行效率,未初始化的指针没有指向合法内存空间。

void空类型不携带有效存储数据,函数返回值写void代表这个函数执行结束不返回任何结果,void指针可以接收任意类型地址,后续使用时强制转换为对应类型,void指针不能直接解引用读取数据。

类型长度由编译器

类型长度由编译器与硬件平台共同决定,不存在全局统一固定字节数。

敬慕百科汇集百科知识与游戏文化,带你发现世界的每一个精彩角落。

想要了解更多关于c语言有哪些数据类型的文章欢迎访问:百科