|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
|
Плюсы в использовании нуля вместо единицы при индексации массива04.02.2018, 16:51. Показов 3148. Ответов 18
Метки нет (Все метки)
Сам уже не раз удостоверился в преимуществе использовании нуля при индексации массива вместо единицы(имею ввиду паскаль), но всё же нет ли каких нибудь чётких пояснений тому что 0 это хорошо а 1 плохо
0
|
|
| 04.02.2018, 16:51 | |
|
Ответы с готовыми решениями:
18
Критическая ошибка при использовании short вместо int Выводит код вместо значений поля, при использовании промежуточной таблицы |
|
Модератор
|
|
| 04.02.2018, 17:01 | |
|
Преимущества 0-смещений очевидны для весьма многих случаев, чего только стоит арифметика смещений, в особенности когда любой массив лишь указатель на его начальный элемент.
Паскалевый for ... downto ... do индифферентен к индексу начального элемента, теперь запишите то же самое для беззнакового счетчика на C/C++ :-)
1
|
|
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
||
| 04.02.2018, 17:36 [ТС] | ||
и что значит слово индифферентен?
0
|
||
|
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
|
|
| 04.02.2018, 17:40 | |
|
1
|
|
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
|
| 04.02.2018, 18:10 [ТС] | |
|
Ну просто подумал что может существует какое нибудь чёткое определение этому(то есть нулю и еденице)
0
|
|
|
Модератор
|
|||||||||||
| 04.02.2018, 18:17 | |||||||||||
|
Индифферентен — безразличен.
1
|
|||||||||||
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
|
| 04.02.2018, 21:58 [ТС] | |
|
bormant, Это единственный плюс "нуля" по сравнению с "единичкой"?
0
|
|
|
-1 / 25 / 4
Регистрация: 27.11.2017
Сообщений: 375
|
|
| 04.02.2018, 22:00 | |
|
Одно из преимуществ состоит в том, что при отсчете от 0 индекс какого-либо элемента массива есть просто число элементов этого массива, расположенных перед данным элементом.
1
|
|
|
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
|
|
| 04.02.2018, 23:59 | |
|
Просто Саша, одно из преимуществ отсчёта от 1 состоит в том, что индекс элемент - это номер элемента.
1
|
|
|
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
|
|
| 05.02.2018, 01:51 | |
|
Почему индекс массива начинается с нуля ? вот тут неплохая дискуссия была на эту тему
1
|
|
|
|
|
| 05.02.2018, 02:14 | |
|
Непонятно только, почему было сказано, что в паскале индекс массива начинается с единицы. С чего угодно можно начать. В качестве индекса может быть использован любой перечислимый тип. Например, перечислимый тип содержит названия месяцев, а массив с индексом этого типа содержит зарплату за этот месяц.
1
|
|
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
||
| 05.02.2018, 09:55 [ТС] | ||
0
|
||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 05.02.2018, 10:10 | |
|
Эта дискуссия напоминает мне выяснение отношений между приверженцами 2-х определений Натуральных Чисел. Некоторые предлагают начинать их нулем, Другие - с единицы. Создатели Си, видимо, принадлежали к первой школе. А обошлись они без паскалевских массивов типа [-4..13] я думаю, просто для упрощения синтаксиса. И главное - была принята ЕДИНАЯ нумерация элементов массива. А уж какая она получилась - с нуля али с 1 - вопрос не принципиальный. Но уже получилась. И входя в уже построенные монастыри, менять их уставы мы не можем. Не нравится? Стройте свой язык, там нумеруйте массивы хоть с миллиона
1
|
|
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
||
| 05.02.2018, 10:35 [ТС] | ||
и при решении задач я ощущаю преимущество в использовании нуля вместо единицы. Тему я создал не для того чтобы выразить своё недовольство по отношению к индексации массивов в C-C++, а для того чтобы получить чёткое определение или утверждение тому что 0 - good, 1 - bad, вот и всё
0
|
||
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|||||||
| 05.02.2018, 10:37 | |||||||
![]()
a[0]=*(a+0)=*(0+a)=0[a] ![]() язык был придуман на смену ассемблера, как можно ближе к железу а Вирт создавал свой язык как учебный, на смену Бэйсика, ближе к человеку
2
|
|||||||
|
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
|
|
| 05.02.2018, 11:11 [ТС] | |
|
0
|
|
|
Модератор
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
|
|||
| 05.02.2018, 11:17 | |||
адресная арифметика однако![]() ![]() в курсе что в Си можно менять имя массива и индекс местами? b[5]==5[b] c[10]==10[c]
2
|
|||
|
Фрилансер
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
|
|
| 05.02.2018, 13:25 | |
|
0
|
|
|
|
|
| 05.02.2018, 15:53 | |
|
Вопрос стоял: хорошо это или плохо. Здесь, как всегда, фор хум хау. Что для русского хорошо, то для немца смерть.
Нужно писать на том, за что деньги платят. И не берите в голову моральную сторону дела. Не думайте, что переход с си на паскаль сродни переходу в другую сексуальную ориентацию. (Не хотел обидеть приверженцев других сексуальных ориентаций.)
0
|
|
| 05.02.2018, 15:53 | |
|
Помогаю со студенческими работами здесь
19
Определить, равно ли число (двумерного массива) нулю. Если равно, то вместо нуля записываем указанный символ Почему счетчик в цикле for начинается с нуля, а не с единицы? Генерация случайного числа больше нуля, но меньше единицы
Подскажите, как изменить так, чтоб номера строк выводились не с нуля, а от единицы? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|