The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним84701, 06-Мрт-20 00:51 
> Тогда вы сможете сделать и второй шаг — объяснить, почему в скриптовых языках индексация не обязана начинаться с нуля.

Скритовые ЯП тут особо ни при чем. Массивы сами по себе уже абстракция (foo[i] -- это  смещение i относительно адреса foo).
Тут просто сочетается синдром водоплавающих и "мы так привыкли и не задумывемся", хотя в том же сишном foo[3] aka *((foo)+(3)) почему-то анонимов не смущает неявное (3*размер_элемента) ;)


var myarr: array[-5..10, -10..10] of Byte;
begin
    myarr[10][10] := 37;
    myarr[-5,-10] := 13;

(ну или если паскаль слишком "скриптово")

echo "void foo(void) {
int bar[10];              
bar[0] = 1;
bar[1] = 2;
}"|gcc -O0 -masm=intel -S -m32 -xc -o- -|grep -v "\."  
foo:
    push    ebp
    mov    ebp, esp
    sub    esp, 48
    mov    DWORD PTR [ebp-40], 1    ;первый элемент массива
    mov    DWORD PTR [ebp-36], 2    ;второй
    nop
    leave
    ret

(т.е. на более низком уровне индексация массива может начинаться совсем не с 0)
 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру