Индекс массивов и строк в c ++ - PullRequest
0 голосов
/ 07 мая 2010

Я хочу знать, откуда начинается индекс строки и массива. Я получаю много путаницы при создании программ.

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

Ответы [ 3 ]

3 голосов
/ 07 мая 2010

В C, C ++, Java и Python индексы массивов основаны на 0, поэтому они варьируются от 0 до length-1. Некоторые математически ориентированные языки программирования, такие как Matlab, основаны на 1. Как общее практическое правило, «настоящие языки программирования», как правило, используют индексацию на основе 0; языки математики / прототипирования / моделирования или другие предметно-ориентированные языки могут использовать индексирование на основе 0 или 1, с общим значением 1 для математики.

В терминах строк длина строки обычно относится к числу символов в строке, исключая завершающий NUL-символ, тогда как длина буфера относится ко всей длине буфера, включая завершающий NUL. Вы обнаружите, что std :: string :: size () и strlen () возвращают количество символов в строке, исключая завершающий NUL (то есть длину строки). Длина буфера на самом деле больше, чем это.

2 голосов
/ 07 мая 2010

Индекс начинается с нуля.

0 голосов
/ 07 мая 2010

Не совсем понятно, о чем вы спрашиваете.

Если вы спрашиваете, начинаются ли строки и массивы с индекса 0, тогда Да.

http://en.wikipedia.org/wiki/Zeroth

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...