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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.95
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
#1

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

03.07.2013, 10:40. Просмотров 5886. Ответов 46
Метки нет (Все метки)

Почему первый элемент массива обозначается 0 , а не 1.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2013, 10:40     Почему индекс массива начинается с нуля ?
Посмотрите здесь:
C++ Почему счетчик в цикле for начинается с нуля, а не с единицы?
C++ Не могу понять, почему ввод строк начинается со 2-ой строки
C++ Почему после считывания матрицы из файла начинается повторное считывание?
C++ Почему если массив начинается с положительного числа, то он не суммируется в общую сумму?
C++ указать индекс второго массива, при котором оба массива перестают совпадать
C++ Удалить из массива тех абонентов, телефон которых начинается с цифры 3
Найти номер элемента из массива А, с которого массив В начинается как подпоследовательность C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
03.07.2013, 10:41     Почему индекс массива начинается с нуля ? #2
потому что смещение адреса первого элемента массива от начала этого массива равно нулю
MaGu
0 / 0 / 0
Регистрация: 07.04.2011
Сообщений: 29
03.07.2013, 10:41     Почему индекс массива начинается с нуля ? #3
потому что так заведено изначально
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,733
03.07.2013, 10:47     Почему индекс массива начинается с нуля ? #4
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
Почему первый элемент массива обозначается 0 , а не 1.
ну потому что
Цитата Сообщение от Croessmah Посмотреть сообщение
потому что смещение адреса первого элемента массива от начала этого массива равно нулю
и это не только в программировании
например только родившийся ребенок
первый год жизни, но возраст 0 лет
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
03.07.2013, 10:57  [ТС]     Почему индекс массива начинается с нуля ? #5
Croessmah,
А смещение адреса второго элемента,который называется "1", равно 1 ?
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
03.07.2013, 10:59     Почему индекс массива начинается с нуля ? #6
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
равно 1 ?
1*размер элемента
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,733
03.07.2013, 11:00     Почему индекс массива начинается с нуля ? #7
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
А смещение второго элемента,который называется "1", равно 1 ?
равно размеру элемента массива
например если массив из char то смешение равно 1 байту
если элемент массива строка из 100 char то будет 100 байт
в общем случае
i*sizeof(arr[0])
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
03.07.2013, 11:08  [ТС]     Почему индекс массива начинается с нуля ? #8
Croessmah,
Размер типа элемента ?

Добавлено через 6 минут
А что нельзя написать компилятор, в котором прописать, что
номер массива равен смещению адреса + 1.
Это сложно ?
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
03.07.2013, 11:10     Почему индекс массива начинается с нуля ? #9
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
Это сложно ?
Это нафиг никому не нужно, да и не удобно
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,733
03.07.2013, 11:12     Почему индекс массива начинается с нуля ? #10
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
А что нельзя написать компилятор, в котором прописать, что
номер массива равен смещению адреса + 1.
Это сложно ?
А зачем ?
переучивать армию программистов? ломать логику ?
только потому что кто то не может понять?
этак и на линейке нужно будет выбросить 0 и начинать с 1 ( миллиметр? сантиметр? микрон?)
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
03.07.2013, 11:12     Почему индекс массива начинается с нуля ? #11
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
А что нельзя написать компилятор
можно проще - написать свой класс и хоть с -3,45 начинайте
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
03.07.2013, 11:17  [ТС]     Почему индекс массива начинается с нуля ? #12
Я понимаю для машинного кода 0, но для ООП языка первый элемент 0 - это не позорище ли ?
Единицу называть нулём, это всё равно что белое называть чёрным.
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.07.2013, 11:21     Почему индекс массива начинается с нуля ? #13
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
А что нельзя написать компилятор, в котором прописать, что
номер массива равен смещению адреса + 1.
ну и получите язык типа Паскаль, в котором более жесткий синтаксис, нежели в Си, например, и вымрет такой язык через некоторе время, как Паскаль

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

А вообще это все
Почему индекс массива начинается с нуля ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2013, 11:24     Почему индекс массива начинается с нуля ?
Еще ссылки по теме:
Найти номер элемента из массива А, с которого массив В начинается как подпоследовательность C++
Вычислить среднее арифметическое элементов, расположенных до первого нуля и после последнего нуля C++
C++ Индекс массива
C++ индекс массива
C++ Найти сумму модулей массива до первого нуля

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

Или воспользуйтесь поиском по форуму:
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
03.07.2013, 11:24  [ТС]     Почему индекс массива начинается с нуля ? #15
Thinker,
Адаптироваться к тому, что 1=0 ?
Yandex
Объявления
03.07.2013, 11:24     Почему индекс массива начинается с нуля ?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru