数据类型

主要类型分类

类型描述
基本数据类型它们是算术类型,包括整型(int)、字符型(char)、浮点型(float)和双精度浮点型(double)。
枚举类型:算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。
void 类型:类型说明符 void 表示没有值的数据类型,通常用于函数返回值。
派生类型:包括数组类型、指针类型和结构体类型。

关于枚举类型和派生类型我们将在以后接触指针和结构体后再展开说明

1. 整数类型

ps: 以下存储大小默认以64位机器为标准

类型存储大小值范围
char1 字节-128 到 127 或 0 到 255
unsigned char1 字节0 到 255
signed char1 字节-128 到 127
int2 或 4 字节-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
unsigned int2 或 4 字节0 到 65,535 或 0 到 4,294,967,295
short2 字节-32,768 到 32,767
unsigned short2 字节0 到 65,535
long4 字节-2,147,483,648 到 2,147,483,647
unsigned long4 字节0 到 4,294,967,295

32位存储大小如下

Description

关于类型的存储大小(长度) 可以使用 sizeof 关键字来计算

#include <stdio.h> int main() { printf("int size = : %lu \n", sizeof(int)); return 0; } //输出 4

%lu 为 32 位无符号整数,详细说明查看 cppreference手册

日常使用的有

格式指示符描述
%d十进制有符号整数
%u十进制无符号整数
%f浮点数
%s字符串
%c单个字符
%p指针的值
%e指数形式的浮点数
%x, %X无符号以十六进制表示的整数
%o无符号以八进制表示的整数
%g把输出的值按照 %e 或者 %f 类型中输出长度较小的方式输出
%p输出地址符
%lu32位无符号整数
%llu64位无符号整数
%%输出百分号字符本身。
%-10s左对齐并占用宽度为 10 的字符串
%5.2f右对齐并占用宽度为 5,保留两位小数的浮点数
%#x输出带有 0x 前缀的十六进制数

其余的一般不使用, 也没有必要全部记下来, 多看看平常使用的自然就贯彻了, 不常使用的再翻查即可

2. 浮点类型

类型存储大小值范围精度
float4 字节1.2E-38 到 3.4E+386 位有效位
double8 字节2.3E-308 到 1.7E+30815 位有效位
long double16 字节3.4E-4932 到 1.1E+493219 位有效位
#include <stdio.h> #include <float.h> int main() { printf("float max bytes : %lu \n", sizeof(float)); printf("float min: %E\n", FLT_MIN ); printf("float max: %E\n", FLT_MAX ); printf("Accuracy value: %d\n", FLT_DIG ); return 0; } //输出 float max bytes : 4 float min: 1.175494E-038 float max: 3.402823E+038 Accuracy value: 6

%E 是以指数形式输出单、双精度实数

3. void 类型

类型描述
函数返回为空C 中有各种函数都不返回值,或者您可以说它们返回空。不返回值的函数的返回类型为空。例如 void exit (int status);
函数参数为空C 中有各种函数不接受任何参数。不带参数的函数可以接受一个 void。例如 int rand(void);
指针指向 void类型为 void * 的指针代表对象的地址,而不是类型。例如,内存分配函数 *void malloc( size_t size ); 返回指向 void 的指针,可以转换为任何数据类型。