约定

  • 口 = 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
  • 浮点型 0.00
    • float
    • double(只有一个说明符)
      • long
  • 指针 *
  • 聚合类型
    • 数组 [ ]
    • 结构体 struct
    • 共用体 union

查看长度的工具

  1. 在 C 语言中,==sizeof( ) ==是一个判断数据类型或者表达式长度的运算符,
    printf("a_short_int is %lu \n", sizeof(a_short_int));

  2. 通过头文件查看各种不同整数类型的最小值、最大值,
    #include

长度的具象表示

不同位数的操作系统,所存储的数据类型存储大小是不同的;下面默认以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
  • 浮点型 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/

汇编语言

问题:

  • 字节、字、双字是什么?
  • 汇编是怎么用这三个类型进行写程序的?

字节(BYTE) :口
字节(WORD) :口口
双字(DWORD) : 口口 口口

Java 语言大脉络

Java的数据类型分为俩大类:

  • 基本数据类型
    • 数值型
      • 整数类型
        • byte : 口
        • short : 口口
        • int : 口口口口
        • long : 口口口口
      • 浮点类型
        • float : 口口口口
        • double :口口口口 口口口口
    • 字符型
      • char : 口口
    • 布尔型
      • boolean :口
  • 引用数据类型
    • Class
    • interface
    • [ ]
    • 枚举
    • 标注

注意:

  • 引用类型的底层结构和基本类型差别较大;
  • 还有比较常用的类型 String、Date不是基本数据类型,是一个静态类。

大小关系:
低 ————————————> 高
byte—>short—>char—> int —> long—> float —> double

基本数据类型的默认值

基本数据类型默认值
byet0
short0
int0
long0L
float0.0f
double0.0d
char‘u000’
String(or any object)null
booleanfalse

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

一个软件开发者(安全方向)的公众号。 Mysticbinary

Github:https://github.com/Mysticbinary
既然看到了这里,君何不畅谈一番?