Другие языки программирования и технологии

Почему программисты начинают счет с нуля, как если бы это была единица?

Почему например, в C++ первый элемент массива имеет индекс 0? ( Например cout << array[ 0 ]; )
А говорят, что женщины не логичные создания)))
Потому что отсчет с нуля идет. Давай посчитаем!

0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
1 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
1 0 1 0 0 0 0 0
...
Ерболат Оразалиев
Ерболат Оразалиев
24 328
Лучший ответ
Ринат Ускенбаев ну а почему с 0? Например, почему бы не сделать двоичную систему счисления с 1 и 2?

напирмер, 12211221 21121112
Кафе "поляна" никого не смущает что двоичный код не правильно записан?
Всего лишь языковые соглашения. В фортране можно с чего угодно начинать, а в пайтоне arr[-1] ссылается на последний элемент
А то, что полночь в 00:00, а не в 01:01, вас не смущает?)
Кристиан Иозефи во-во и что колобок со зверями разговаривает, тоже нормально
Евгений Амочаев Ночь так и расшифровывается - ноль часов. значит ноль начинает отсчет и задает или переходит в единицу счета. в школах об этом не говорят.
потому, что так намного удобнее и правильнее...
Ринат Ускенбаев чем же? 0 - означает отсутствие чего бы то ни было.
Смотря что считать. Например, предметы программисты считают как все - с единицы.
С какого числа считать индексы массива - не так уж важно, иногда удобно это делать вовсе не с 1. В некоторых языках можно задавать номер начального элемента.

В С++ так сложилось традиционно. Вероятно, это связано с тем, что язык С изначально был тесно связан с внутренним представлением данных в памяти компьютера. Имя массива по-сути представляло собой адрес начала блока памяти, выделенного под массив. А индекс, соответственно, смещение относительно этого адреса. Таким образом, первый элемент имеет смещение 0, т. е. его адрес совпадает с адресом массива.

Так что все логично, есть причины, есть определенное удобство в таком способе нумерации. Хотя, конечно, это несколько непривычно. Но не забывайте, это ведь язык компьютеров - он в любом случае будет содержать некоторые не совсем очевидные вещи )
п/ч работают только с цифрами, чисел не знают, а у нас десятиистеричная система
Ernist Kasanaliev
Ernist Kasanaliev
94 096
А ещё у этих погромистов в одном килограмме ровно 1024 грамм.
Kenan Suleymanov Это не у программистов, а в двоичной системе исчисления 2 в степени 10 равно 1024. Это круглое число в этой системе. Была бы троичная система исчисления, то ближайшее к 1000 круглое число было бы 3^6 = 729
многие вещи становятся проще, вроде циклических сдвигов
Потому что индекс в массиве - это смещение от начала массива. А так как первый элемент сам и является началом, то его смещение равно 0.
СC
С C
24 295
Проще адрес элемента массива в памяти вычислить. По самому адресу находится первый элемент, а индекс это смещение. Для первого элемента это и есть 0, для второго 1 и т. д. Пошло еще со времен когда на ассемблере проги писали.