Convention
- 口 = 1 Byte,用于具象化,方便眼睛对比长度;
- void = 空类型;
- C语言中,short、long、singned、unsigned都为说明符,可以改变标识符存储大小;
- C语言中,在声明整型变量时,如果声明中已经有一个其他的(同等)说明符,那么关键字int可以省略;
- C语言中,默认使用有符号(singned);
- C语言中,浮点数据类型没有无符号分类,都可以存储正数和负数;
C
大脉络
大概知道即可,不要刻意去记忆。
在C语言中,仅有4种基本数据类型:
- 整型 +-N
- int (这里比较绕,但是记住int是主要标识,还有4个说明符用来标记大小)
- signed (default)
- unsigned
- short
- signed(default)
- unsigned
- long
- signed (default)
- unsigned
- char
- signed
- unsigned
- 枚举 enum
- int (这里比较绕,但是记住int是主要标识,还有4个说明符用来标记大小)
- 浮点型 0.00
- float
- double(只有一个说明符)
- long
- 指针 *
- 聚合类型
- 数组 [ ]
- 结构体 struct
- 共用体 union
查看长度的工具
-
在 C 语言中,==sizeof( ) ==是一个判断数据类型或者表达式长度的运算符,
printf("a_short_int is %lu \n", sizeof(a_short_int));
-
通过头文件查看各种不同整数类型的最小值、最大值,
#include <limits.h>
长度的具象表示
不同位数的操作系统,所存储的数据类型存储大小是不同的;下面默认以64位系统举例。
- 整型 +-N
- int
- signed (default):口口口口
- unsigned :口口口口
- short
- signed(default):口口
- unsigned :口口
- long
- signed (default):口口口口 口口口口
- unsigned :口口口口 口口口口
- long long ( long long int 类型的数值取值范围 比 long int大 , 虽然都是8个字节 )
- signed (default):口口口口 口口口口
- unsigned :口口口口 口口口口
- _int64 (__int64并不是正式规范,一些编译器把它等于long long)
- signed (default):口口口口 口口口口
- unsigned :口口口口 口口口口
- char
- signed : 口口
- unsigned :口口
- 枚举 enum
- int
- 浮点型 0.00
- float :口口口口
- double :口口口口 口口口口
- long :口口口口 口口口口 口口口口 口口口口 口口口口
新的基本数据类型规范
有基本数据类型,为什么还需要新的基本数据类型规范?
在 C99 规范中,有着大量对于新的数据类型的定义和补充。这是非常有必要的,原先的 int,long 等变量基本类型在不同架构的机器上,会有不同的长度,往往会导致不可预期的问题。 64 位数值、布尔类型和复数类型的缺失、以及 Unicode 的缺失也阻碍了 C 语言在现代的进一步发展。因此,C99 类型中带来了大量编码类型的变化。
stdint.h是c99中引进的一个标准C库的头文件:
stdint.h中定义了一些整数类型
,规则如下(其中N可以为 8、16、32、64 )
intN_t, int_leastN_t, int_fastN_t 表示长度为N位的整型数;
uintN_t, uint_leastN_t, uint_fastN_t 表示长度为N位的无符号整型数 ;
stdint.h中的常量
,定义以上各类型数的最大、最小值(其中N可以为 8、16、32、64 )
INTN_MIN, UINTN_MIN, INTN_MAX, UINTN_MAX ;
INT_LEASEN_MIN, INT_LEASEN_MAX ;
INT_FASTN_MIN, INT_FASTN_MAX ;
reference:
C99标准中stdint.h头文件整形数据类型定义
https://blog.csdn.net/m0_46577050/article/details/121014280
技术摘要| 现代 C99, C11 标准下的 C 语言编程
https://www.elliot98.top/post/tech/modern_c_standard/
Assembly language
问题:
- 字节、字、双字是什么?
- 汇编是怎么用这三个类型进行写程序的?
字节(BYTE) :口
字节(WORD) :口口
双字(DWORD) : 口口 口口
Java
大脉络
Java的数据类型分为俩大类:
- 基本数据类型
- 数值型
- 整数类型
- byte : 口
- short : 口口
- int : 口口口口
- long : 口口口口
- 浮点类型
- float : 口口口口
- double :口口口口 口口口口
- 整数类型
- 字符型
- char : 口口
- 布尔型
- boolean :口
- 数值型
- 引用数据类型
- Class
- interface
- [ ]
- 枚举
- 标注
注意:
- 引用类型的底层结构和基本类型差别较大;
- 还有比较常用的类型 String、Date不是基本数据类型,是一个静态类。
大小关系:
低 ------------------------------------> 高
byte—>short—>char—> int —> long—> float —> double
基本数据类型的默认值
基本数据类型 | 默认值 |
---|---|
byet | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
char | 'u000' |
String(or any object) | null |
boolean | false |
SQL
问题 :
- varchar(255) , 里面的255是什么意思?
TODO
Reference
C Data Types
https://www.programiz.com/c-programming/c-data-types
Java基本数据类型总结
https://www.cnblogs.com/doit8791/archive/2012/05/25/2517448.html