В чем разница между составным типом данных и структурой данных? - PullRequest
4 голосов
/ 07 января 2011

Я прочитал, что символьный массив в C - это составной тип данных, потому что это последовательность символов, но затем в Java String - это класс, и Википедия говорит, что класс - это структура данных, я запутался.

Ответы [ 5 ]

7 голосов
/ 08 января 2011

«Структура данных» - это очень общий термин теоретической информатики.Любой метод организации управляемых машиной данных может рассматриваться как структура данных.Даже одно целое число машины является структурой данных, потому что биты можно интерпретировать несколькими способами.Чаще всего, хотя «структура данных» используется для ссылки на организацию, применяемую к большой коллекции данных: например, двоичное дерево, хеш-таблица, плоский массив или связанный список.И обычно, когда люди говорят о структурах данных, они делают это в общих терминах, не относящихся к конкретному языку программирования.

«Составной тип данных» - это термин «С» и родственные языки, что означает «любой».тип данных языка, который не является номером машины ", более или менее.Составные типы данных являются структурами данных, но не все структуры данных являются составными типами данных - номера компьютеров слишком просты, чтобы быть составными типами данных, и сложная структура данных может быть построена из нескольких составных данныхtypes.

«Класс» - это уровень техники объектно-ориентированных языков программирования, относящийся к типу данных, который определяет не только данные, но и «методы» для манипулирования данными.В C ++ все типы классов являются составными типами данных, но не все составные типы данных являются типами классов (другие являются типами «простые старые данные» или «POD»).

«String» - это универсальный типтермин для структуры данных, которая содержит последовательность маленьких машинных целых чисел, которые так или иначе представляют текст.Почти каждый язык программирования имеет некоторое представление о строке, но нет двух одинаковых.Строки по определению являются структурами данных.В семействе C строки всегда являются составными типами данных, потому что машинное целое число single недостаточно велико для нескольких символов.В объектно-ориентированных языках программирования строки обычно, но не всегда, являются типами классов.

Я надеюсь, что это, по крайней мере, выводит вас на более сложный уровень путаницы.

3 голосов
/ 08 января 2011

тип данных - это любая вещь, из которой вы можете сделать переменную.член является переменной.метод - это функция.базовый тип не имеет членов и методов.структура состоит из комбинаций базовых типов и других структур.класс - это структура, которая включает методы и члены.массив - это массив любого типа данных, либо базовых типов, структур или классов.

2 голосов
/ 08 января 2011

Ну, я бы сказал, что «составной тип данных» и «структура данных» - это почти одно и то же: фрагмент данных с различимыми частями, в отличие от простых или элементарных типов данных, таких как char или byte, которые не создаютсяиз более мелких типов данных.

0 голосов
/ 21 июня 2019

Составные типы получены из более чем одного примитивного типа (символы, целые числа, логические значения и т. Д.). Это можно сделать несколькими способами. Способы их объединения называются структурами данных.

Следовательно, ваш массив символов в C является составным типом данных и структурой данных. В общем, чтобы упростить вашу жизнь и жизнь вокруг вас, вы можете рассматривать структуру данных как общий термин.

0 голосов
/ 06 июля 2017

Каждый тип данных является структурой данных, но ни каждая структура данных не является типом данных.

Тип данных - это объект, который может содержать данные.Тип данных самой простой формы - это примитивный тип данных.Более сложный тип данных, состоящий из примитивных типов данных, является составным типом данных

. Структура данных становится отличной от типа данных, когда она содержит отношения между сохраненными объектами и объектами.здесь сущности являются типами данных.но типы данных вместе со связями образуют структуру данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...