Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как работает механизм -size при работе с массивами?

ФермаКактусов Высший разум (215242), открыт 1 неделю назад
 sumbs[size] указывает на первый элемент
sumbs[-size] указывает на последний
1 ответ
Fleur_des Знаток (297) 1 неделю назад
sumbs[size] указывает на элемент по индексу size в списке.
sumbs[-size] указывает на элемент с конца списка, который находится на позиции size от последнего элемента.
Отрицательные индексы не меняют порядок элементов, а просто ссылаются на их позиции с конца.
Fleur_desЗнаток (297) 1 неделю назад
Если в списке sumbs = [10, 20, 30, 40, 50]:
sumbs[0] даст 10 — первый элемент.
sumbs[2] даст 30 — третий элемент.
sumbs[-1] даст 50 — последний элемент.
sumbs[-3] даст 30 — третий элемент с конца
ФермаКактусовВысший разум (215242) 1 неделю назад
откуда тогда указатель знает где конец если размер массива не получен?
ФермаКактусов, если это C или C++, то ниоткуда, и конструкция array[-size] - это попытка получить доступ к какому-то совершенно левому адресу. В зависимости от разрядности исполняющей среды и типа данных size, это может быть адрес или на (4 гигабайта - size) впереди, либо на size позади начала массива.
Fleur_desЗнаток (297) 1 неделю назад
Python всегда знает размер списка или массива, и когда вы используете отрицательные индексы, он автоматически вычисляет нужный индекс, опираясь на текущий размер структуры данных. Вам не нужно вручную вычислять размер массива для работы с отрицательными индексами
Похожие вопросы