Форум программистов, компьютерный форум CyberForum.ru

Почему индекс массива начинается с нуля ? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.95
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
03.07.2013, 10:40     Почему индекс массива начинается с нуля ? #1
Почему первый элемент массива обозначается 0 , а не 1.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2013, 10:40     Почему индекс массива начинается с нуля ?
Посмотрите здесь:

C++ индекс массива
C++ указать индекс второго массива, при котором оба массива перестают совпадать
Найти номер элемента из массива А, с которого массив В начинается как подпоследовательность C++
Найти номер элемента из массива А, с которого массив В начинается как подпоследовательность C++
C++ Не могу понять, почему ввод строк начинается со 2-ой строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11823 / 6802 / 769
Регистрация: 27.09.2012
Сообщений: 16,870
Записей в блоге: 2
Завершенные тесты: 1
03.07.2013, 10:41     Почему индекс массива начинается с нуля ? #2
потому что смещение адреса первого элемента массива от начала этого массива равно нулю
MaGu
0 / 0 / 0
Регистрация: 07.04.2011
Сообщений: 29
03.07.2013, 10:41     Почему индекс массива начинается с нуля ? #3
потому что так заведено изначально
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,045
03.07.2013, 10:47     Почему индекс массива начинается с нуля ? #4
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
Почему первый элемент массива обозначается 0 , а не 1.
ну потому что
Цитата Сообщение от Croessmah Посмотреть сообщение
потому что смещение адреса первого элемента массива от начала этого массива равно нулю
и это не только в программировании
например только родившийся ребенок
первый год жизни, но возраст 0 лет
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
03.07.2013, 10:57  [ТС]     Почему индекс массива начинается с нуля ? #5
Croessmah,
А смещение адреса второго элемента,который называется "1", равно 1 ?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11823 / 6802 / 769
Регистрация: 27.09.2012
Сообщений: 16,870
Записей в блоге: 2
Завершенные тесты: 1
03.07.2013, 10:59     Почему индекс массива начинается с нуля ? #6
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
равно 1 ?
1*размер элемента
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,045
03.07.2013, 11:00     Почему индекс массива начинается с нуля ? #7
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
А смещение второго элемента,который называется "1", равно 1 ?
равно размеру элемента массива
например если массив из char то смешение равно 1 байту
если элемент массива строка из 100 char то будет 100 байт
в общем случае
i*sizeof(arr[0])
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
03.07.2013, 11:08  [ТС]     Почему индекс массива начинается с нуля ? #8
Croessmah,
Размер типа элемента ?

Добавлено через 6 минут
А что нельзя написать компилятор, в котором прописать, что
номер массива равен смещению адреса + 1.
Это сложно ?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11823 / 6802 / 769
Регистрация: 27.09.2012
Сообщений: 16,870
Записей в блоге: 2
Завершенные тесты: 1
03.07.2013, 11:10     Почему индекс массива начинается с нуля ? #9
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
Это сложно ?
Это нафиг никому не нужно, да и не удобно
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,045
03.07.2013, 11:12     Почему индекс массива начинается с нуля ? #10
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
А что нельзя написать компилятор, в котором прописать, что
номер массива равен смещению адреса + 1.
Это сложно ?
А зачем ?
переучивать армию программистов? ломать логику ?
только потому что кто то не может понять?
этак и на линейке нужно будет выбросить 0 и начинать с 1 ( миллиметр? сантиметр? микрон?)
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11823 / 6802 / 769
Регистрация: 27.09.2012
Сообщений: 16,870
Записей в блоге: 2
Завершенные тесты: 1
03.07.2013, 11:12     Почему индекс массива начинается с нуля ? #11
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
А что нельзя написать компилятор
можно проще - написать свой класс и хоть с -3,45 начинайте
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
03.07.2013, 11:17  [ТС]     Почему индекс массива начинается с нуля ? #12
Я понимаю для машинного кода 0, но для ООП языка первый элемент 0 - это не позорище ли ?
Единицу называть нулём, это всё равно что белое называть чёрным.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.07.2013, 11:21     Почему индекс массива начинается с нуля ? #13
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
А что нельзя написать компилятор, в котором прописать, что
номер массива равен смещению адреса + 1.
ну и получите язык типа Паскаль, в котором более жесткий синтаксис, нежели в Си, например, и вымрет такой язык через некоторе время, как Паскаль

Добавлено через 3 минуты
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
для ООП языка первый элемент 0 - это не позорище ли ?
позорище не 0 в ООП, а программист, который не может понять почему 0, и быстро адаптироваться к этому
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,332
Завершенные тесты: 1
03.07.2013, 11:24     Почему индекс массива начинается с нуля ? #14
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
А что нельзя написать компилятор
Попробуйте скооперироваться с GSSR.
Цитата Сообщение от ValeryS Посмотреть сообщение
переучивать армию программистов?
Скажите это армии дельфийских программистов.

А вообще это все
Почему индекс массива начинается с нуля ?
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
03.07.2013, 11:24  [ТС]     Почему индекс массива начинается с нуля ? #15
Thinker,
Адаптироваться к тому, что 1=0 ?
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,045
03.07.2013, 11:27     Почему индекс массива начинается с нуля ? #16
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
Я понимаю для машинного кода 0, но для ООП языка первый элемент 0 - это не позорище ли ?
а не позорище ли
первый сантиметр смешение 0?
первый год жизни смешение 0?
Все менять будем?
Пойми
первый элемент лежит по смешению 0 второй по смещению 1 и т.д.
а в скобках указывается смешение от начала
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.07.2013, 11:27     Почему индекс массива начинается с нуля ? #17
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
Thinker,
Адаптироваться к тому, что 1=0 ?
1 != 0, вы что-то знаете о частично упорядоченных множествах? а теорему Цермело? пронумеровать можно не только натуральными числами, а чем угодно!!! просто надо осознать почему с 0: для более гибкой и быстрой работы компилятора и программы.
ValeryS
03.07.2013, 11:29
  #18

Не по теме:

Цитата Сообщение от SatanaXIII Посмотреть сообщение
Скажите это армии дельфийских программистов.
В смысле?
Делфи и Си будем совмещать ?

Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.07.2013, 11:31     Почему индекс массива начинается с нуля ? #19
Цитата Сообщение от ValeryS Посмотреть сообщение

Не по теме:


В смысле?
Делфи и Си будем совмещать

Не по теме:

и получим ДЕЛСИ, который и дня не проживет

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2013, 11:32     Почему индекс массива начинается с нуля ?
Еще ссылки по теме:

C++ Удалить из массива тех абонентов, телефон которых начинается с цифры 3
C++ Почему счетчик в цикле for начинается с нуля, а не с единицы?
C++ Индекс массива

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
SatanaXIII
03.07.2013, 11:32     Почему индекс массива начинается с нуля ?
  #20

Не по теме:

ValeryS, знаете почему математики с недоверием глядят на программистов? Потому что программисты знают, что x=x+1.

Цитата Сообщение от Thinker Посмотреть сообщение
и получим ДЕЛСИ, который и дня не проживет
"Убейте меня!.." - чудовище такое.

Yandex
Объявления
03.07.2013, 11:32     Почему индекс массива начинается с нуля ?
Ответ Создать тему
Опции темы

Текущее время: 09:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru