Краткий ответ: Сделайте себе одолжение и просто проигнорируйте обе статьи.Я не сомневаюсь в благих намерениях авторов, но статьи в лучшем случае сбивают с толку.
Что это такое: int array[]={1, 2, 3, 4, 5};
?
Это структура данных массива илитипа данных массива?Почему?
Это оба.Предполагается, что структура данных массива , обсуждаемая в статье под таким именем, должна относиться конкретно к массивам, реализованным в C. Концепция типа данных array должна быть более абстрактной, но для массивов Cбезусловно, это одна реализация массива данных типа .
Длинный ответ: Разница, рассматриваемая в этих двух статьях, заключается в разнице между поведением и реализацией.Как используется в статьях, структура данных массива относится к элементам, хранящимся последовательно в памяти, так что вы можете вычислить адрес любого элемента по:
address = (base address) + (element index * size of a single element)
, где «базовый адрес» равенадрес элемента с индексом 0.
Тип данных массива , с другой стороны, относится к любому типу данных, который обеспечивает логическую последовательность элементов, к которым обращается индекс.Например, C ++ предоставляет std :: vector, а Objective-C предоставляет NSArray и NSMutableArray, ни один из которых, скорее всего, не будет реализован как непрерывная последовательность элементов в памяти.
Терминология, используемая в статьях isn 'очень полезно.Определение, данное в верхней части структуры данных массива статья:
структура данных массива или просто массив - это структура данных, состоящая из набора элементов (значений или переменных), каждый из которых идентифицирован по крайней мере одним индексом
, в то время как определение, данное для тип данных массива :
тип массива - тип данныхпредназначенный для описания набора элементов (значений или переменных), каждый из которых выбирается одним или несколькими индексами, которые могут быть вычислены во время выполнения
. Не помогает, что данные массива В статье struct , которая, по-видимому, должна относиться к реализации массивов в стиле C, содержится обсуждение ассоциативных массивов и другого материала, который был бы гораздо более уместным в статье типа данных массива *1052*.Вы можете узнать, почему это так, прочитав страницу обсуждения , в частности Предложение о разделении статьи и Структура массива .Единственное, что ясно в этих статьях, - это то, что разные авторы не могут определиться с тем, как следует определять и объяснять «массив».