С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.96/50: Рейтинг темы: голосов - 50, средняя оценка - 4.96
sergey.shuvalov
-5 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 269
1

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

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

Почему первый элемент массива обозначается 0 , а не 1.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2013, 10:40
Ответы с готовыми решениями:

Почему счетчик в цикле for начинается с нуля, а не с единицы?
привет. почему когда надо сделать какое-то действие, например 4 раза, то пишут:...

Не могу понять, почему ввод строк начинается со 2-ой строки
не могу понять, почему ввод строк начинается со 2-ой строки #include...

Почему после считывания матрицы из файла начинается повторное считывание?
Здравствуйте. ПРоблема такова, считывает размер матрицы и саму матрицу, после...

Почему если массив начинается с положительного числа, то он не суммируется в общую сумму?
#include <iostream> using namespace std; int main() { setlocale(...

указать индекс второго массива, при котором оба массива перестают совпадать
Даны два массива, они упорядочены и надо указать индекс второго массива при...

46
Croessmah
++Ͻ
14777 / 8453 / 1605
Регистрация: 27.09.2012
Сообщений: 20,804
Записей в блоге: 2
Завершенные тесты: 1
03.07.2013, 10:41 2
потому что смещение адреса первого элемента массива от начала этого массива равно нулю
0
MaGu
0 / 0 / 1
Регистрация: 07.04.2011
Сообщений: 29
03.07.2013, 10:41 3
потому что так заведено изначально
0
ValeryS
Модератор
7376 / 5576 / 708
Регистрация: 14.02.2011
Сообщений: 18,957
03.07.2013, 10:47 4
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
Почему первый элемент массива обозначается 0 , а не 1.
ну потому что
Цитата Сообщение от Croessmah Посмотреть сообщение
потому что смещение адреса первого элемента массива от начала этого массива равно нулю
и это не только в программировании
например только родившийся ребенок
первый год жизни, но возраст 0 лет
1
sergey.shuvalov
-5 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 269
03.07.2013, 10:57  [ТС] 5
Croessmah,
А смещение адреса второго элемента,который называется "1", равно 1 ?
0
Croessmah
++Ͻ
14777 / 8453 / 1605
Регистрация: 27.09.2012
Сообщений: 20,804
Записей в блоге: 2
Завершенные тесты: 1
03.07.2013, 10:59 6
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
равно 1 ?
1*размер элемента
0
ValeryS
Модератор
7376 / 5576 / 708
Регистрация: 14.02.2011
Сообщений: 18,957
03.07.2013, 11:00 7
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
А смещение второго элемента,который называется "1", равно 1 ?
равно размеру элемента массива
например если массив из char то смешение равно 1 байту
если элемент массива строка из 100 char то будет 100 байт
в общем случае
i*sizeof(arr[0])
0
sergey.shuvalov
-5 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 269
03.07.2013, 11:08  [ТС] 8
Croessmah,
Размер типа элемента ?

Добавлено через 6 минут
А что нельзя написать компилятор, в котором прописать, что
номер массива равен смещению адреса + 1.
Это сложно ?
0
Croessmah
++Ͻ
14777 / 8453 / 1605
Регистрация: 27.09.2012
Сообщений: 20,804
Записей в блоге: 2
Завершенные тесты: 1
03.07.2013, 11:10 9
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
Это сложно ?
Это нафиг никому не нужно, да и не удобно
0
ValeryS
Модератор
7376 / 5576 / 708
Регистрация: 14.02.2011
Сообщений: 18,957
03.07.2013, 11:12 10
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
А что нельзя написать компилятор, в котором прописать, что
номер массива равен смещению адреса + 1.
Это сложно ?
А зачем ?
переучивать армию программистов? ломать логику ?
только потому что кто то не может понять?
этак и на линейке нужно будет выбросить 0 и начинать с 1 ( миллиметр? сантиметр? микрон?)
0
Croessmah
++Ͻ
14777 / 8453 / 1605
Регистрация: 27.09.2012
Сообщений: 20,804
Записей в блоге: 2
Завершенные тесты: 1
03.07.2013, 11:12 11
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
А что нельзя написать компилятор
можно проще - написать свой класс и хоть с -3,45 начинайте
0
sergey.shuvalov
-5 / 2 / 0
Регистрация: 06.11.2011
Сообщений: 269
03.07.2013, 11:17  [ТС] 12
Я понимаю для машинного кода 0, но для ООП языка первый элемент 0 - это не позорище ли ?
Единицу называть нулём, это всё равно что белое называть чёрным.
1
Thinker
Эксперт С++
4234 / 2208 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.07.2013, 11:21 13
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
А что нельзя написать компилятор, в котором прописать, что
номер массива равен смещению адреса + 1.
ну и получите язык типа Паскаль, в котором более жесткий синтаксис, нежели в Си, например, и вымрет такой язык через некоторе время, как Паскаль

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

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

Не по теме:

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

0
Thinker
Эксперт С++
4234 / 2208 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.07.2013, 11:31 19
Цитата Сообщение от ValeryS Посмотреть сообщение

Не по теме:


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

Не по теме:

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

0
SatanaXIII
03.07.2013, 11:32     Почему индекс массива начинается с нуля ?
  #20

Не по теме:

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

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

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

Переставить соседние элементы массива: 1-й со 2-м, 3-й с 4-м и т.д. Нумерация элементов начинается с единицы
Входные данные Первая строка содержит размер массива N . Во второй строке...

Удалить из массива тех абонентов, телефон которых начинается с цифры 3
Сформировать массив записей, описывающих следующую таблицу:...

Найти номер элемента из массива А, с которого массив В начинается как подпоследовательность
Помогите, пожалуйста, написать программу, которая находила бы номер элемента из...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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