复合数据类型和数据结构之间有什么区别?

use*_*249 4 arrays types data-structures

我读到C中的字符数组是一个复合数据类型,因为它是一个字符序列,但是在Java中,String是一个类,而维基百科说一个类是数据结构,我很困惑.

zwo*_*wol 7

"数据结构"是理论计算机科学的一个非常通用的术语.用于组织机器可操纵数据的任何技术都可以被认为是数据结构.即使是单个机器整数也是一种数据结构,因为可以通过多种方式解释这些位.最常见的是,"数据结构"用于指代应用于大量数据集的组织:例如,二叉树,哈希表,平面数组或链表.通常当人们谈论数据结构时,他们用通用术语来表达,而不是特定于特定的编程语言.

"复合数据类型"是C和相关语言的术语,意思是"任何不是机器编号的语言数据类型",或多或少.复合数据类型是数据结构,但并非所有数据结构都是复合数据类型 - 机器编号太简单而不能成为复合数据类型,并且复杂的数据结构很可能是由多种复合数据类型构建的.

"类"是面向对象编程语言的术语,指的是不仅定义数据而且定义用于操纵数据的"方法"的数据类型.在C++中,所有类类型都是复合数据类型,但并非所有复合数据类型都是类类型(其他类型是"普通旧数据"或"POD"类型).

"String"是数据结构的通用术语,该数据结构包含以某种方式表示文本的小型机器整数序列.几乎每种编程语言都有一些字符串的概念,但其中没有两种是相同的.字符串是定义数据结构.在C系列中,字符串始终是复合数据类型,因为单个机器整数不足以容纳多个字符.在面向对象的编程语言中,字符串通常(但不总是)类类型.

我希望这至少会让你更加复杂.