c | c++ | python | java |
---|---|---|---|
整型(int) 无符号unsigned int 有符号signed int(默认) | 整型(int、short、long、long long) | 整型(int) | 整型:(byte、short、int、long) |
浮点型(float和double) | 浮点型(float和double) | 浮点型(float) 复数(complex) | 浮点型(float和double) |
字符型(char) | 字符型(char) | 字符串(str) | 字符型(char) |
布尔型(_Bool或bool) | 布尔型(bool) | 布尔型(bool) | 布尔型(boolean) |
数组(Array) | 数组(Array) | 元组(tuple) | 数组 |
结构体(struct) | 结构体(struct) | ||
联合体(union) | 联合体(union) | ||
枚举(enum) | |||
指针 | 指针 | ||
引用 | |||
类 | 类 | 类(Class)和接口(Interface) | |
特殊数据类型: 高精度计算BigDecimal和BigInteger、日期时间相关的数据类型 | |||
数据结构 | |||
线性表 | 线性表 vector(动态数组) | 列表(list) | ArrayList Vector |
链表 | 链表list | LinkedList | |
栈 | stack(栈) | Stack | |
队列 | queue(队列) deque(双端队列) | Queue | |
树 | 第三方库(如NetworkX) | 第三方库(如JGraphT) | |
图 | 第三方库(如NetworkX) | 第三方库(如JGraphT) | |
STL(标准模板库) map(映射) 等 | 字典(dictionary) | HashMap、TreeMap | |
set(集合)、 | 集合(set) | HashSet、TreeSet |
---
C、C++、Python、Java的基本数据类型各有特点,以下是关于这四种语言基本数据类型的详细介绍:
C语言基本数据类型
C语言是一种静态类型语言,需要在声明变量时指定类型。其基本数据类型包括:
- 整型(int):通常分为有符号(signed)和无符号(unsigned)两种,可以通过在int前面加上signed或unsigned关键字来明确指定整型是有符号的还是无符号的。例如,
unsigned int b;
定义了一个无符号整型变量b。如果不指定signed或unsigned,那么默认是有符号的。此外,C语言还提供了short、long、long long等整型,以满足不同范围的整数存储需求。 - 浮点型(float和double):分别表示单精度浮点数和双精度浮点数。
- 字符型(char):用于表示单个字符。可以分为普通字符和宽字符,普通字符使用char类型来表示;宽字符使用wchar_t类型来表示。普通字符是ASCII字符集中的字符,范围从0到127。可以使用单引号将普通字符括起来,例如'A'或者'1'。宽字符可以用于表示更多的字符集,包括扩展的ASCII字符集、Unicode字符集等。可以使用L前缀将宽字符括起来,例如L'中'。
- 布尔型(_Bool或bool):表示真或假,通常用1表示真(True),0表示假(False)。C99标准引入了_Bool类型,并允许使用bool作为别名。
- 数组(Array):用于存储一组相同类型的数据。
- 结构体(struct):用于将多个不同类型的数据组合在一起。
- 联合体(union):用于将多个相同类型的数据组合在一起,节省内存空间。但注意,联合体中的所有成员共享同一块内存空间,因此同一时间只能存储一个成员的值。
- 枚举(enum):用于定义一组命名的常量。
- 指针:用来存储某个变量的内存地址的一种数据类型。指针变量可以将一个特定类型的值的地址作为其值。
C++基本数据类型
C++同样是静态类型语言,数据类型与C语言基本相同(继承自C,拥有C语言的所有基本数据类型),但也增加了一些新的特性,如引用类型和const关键字。C++的基本数据类型包括:
- 整型(int):同C语言。C++也提供了short、long、long long等整型。
- 浮点型(float和double):同C语言。
- 字符型(char):同C语言。从C++11开始,char也可以被视为一个宽字符类型,可以存储一个Unicode字符。
- 布尔型(bool):C++语言中新增的数据类型(C99标准之前的C语言没有布尔类型),表示真或假。
- 数组(Array):用于存储一组相同类型的数据。
- 结构体(struct):同C语言。
- 联合体(union):同C语言。
- 指针:C和C++中的指针类型功能相似,但C++提供了更多的类型安全性机制和一些新的特性,以便更好地管理内存和优化代码。
- 引用:与指针类似,但更安全且不能修改指向的变量。引用类型允许创建对其他对象或变量的别名,它们在使用时类似于指针,但在底层实现上有所不同。
- 类:是一种用户自定义的数据类型,它将数据成员(成员变量)和成员函数(成员方法)组合在一起。类支持封装、继承和多态等面向对象编程特性。
Python基本数据类型
Python是一种动态类型语言,变量的类型是在运行时确定的,不需要事先声明变量的数据类型。Python的基本数据类型包括:
- 整型(int):用于表示整数,可以是正数、负数或零。在Python中,整型可以表示的数值范围是平台特定的。
- 浮点型(float):用于表示带有小数部分的数字。浮点型可以表示正数、负数和零。
- 复数(complex):用于表示复数,包括实部和虚部。
- 布尔型(bool):用于表示布尔值,即True或False。
- 字符串(str):由零个或多个字符组成的有序字符序列。字符串是不可变的,这意味着不能更改字符串中的字符。
- 列表(list):包含一组有序项的集合,每个项目可以是不同类型的数据。列表是可变的,即可以添加、删除或更改列表中的元素。
- 元组(tuple):与列表类似,元组包含一组有序项,但元组是不可变的,这意味着不能更改元组中的元素。
- 集合(set):包含一组无序且不重复的元素。集合提供了一些有用的操作,如并集、交集和差集等。
- 字典(dict):包含键值对的无序集合。字典中的每个元素都由一个键和一个值组成,键和值之间用冒号分隔,元素之间用逗号分隔,整个字典包含在花括号中。
Java基本数据类型
Java是静态类型语言,并且具有强类型系统。Java中的数据类型可以分为两大类:基本数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)。Java的基本数据类型包括:
-
整型:
- byte:1字节,表示字节。
- short:2字节,表示短整型。
- int:4字节,表示整型(整数默认int类型)。
- long:8字节,表示长整型。
-
浮点型:
- float:4字节,表示单精度浮点数(小数默认double类型,所以float类型需要显式声明)。
- double:8字节,表示双精度浮点数。
-
字符型(char):2字节,用于表示单个字符。由于字符的码值都是从0开始,所以char类型取值范围0~65535(32768+32767)。
-
布尔型(boolean):4字节,表示真或假,这种类型的变量值只有true和false。
此外,Java还有一些特殊数据类型,如BigDecimal和BigInteger用于高精度计算,以及日期时间相关的数据类型。同时,Java还支持用户自定义的数据类型,包括类(Class)和接口(Interface)。类用于定义对象的属性和方法,而接口用于定义一组方法但不包含实现。