Недавно я читал блог, в котором большое внимание было уделено массивам данных (в частности, в Go), но я понял, что по определению данные массива хранятся смежно. По крайней мере, это все, что изучают мои алгоритмы и структуры данных, побудило меня поверить.Являются ли массивы сохраненными на всех языках?
Так что мой вопрос в том, хранятся ли массивные данные на всех языках программирования? И, в частности, я хочу поговорить о таких примитивах, как целые числа (или в случае Java, где у меня может быть массив объектов, являются ли ссылки на объекты, хранящиеся в памяти в памяти? Я знаю, что сами объекты могут быть где угодно).
для java уже есть ответ https://stackoverflow.com/questions/10224888/java-are-1-d-arrays-always-contiguous-in-memory – DRC
Для Java нет правила хранить элементы массива смежно или в каком-либо конкретном порядке, при условии, что указанное поведение происходит. Языки C обычно требуют непрерывного порядка для одномерных массивов, чтобы семантика указателя была гарантирована. Вероятно, существует несколько языков, которые используют механизм типа ArrayList для массивов, а массивы могут быть построены из нескольких несмежных блоков. –
Многие спецификации языка рассматривают это как деталь реализации (что такое память?) И не гарантируют ее, но обычно это происходит в реальных реализациях. – zch