C ++ массивы и размер - PullRequest
5 голосов
/ 24 января 2011

Если у меня есть, например, следующее объявление массива: int a[5];, это означает, что у меня есть массив "a", который содержит 5 целочисленных переменных.

Не было бы этов памяти что-то вроде этого (см. \0)?


| 0 | 1 | 2 | 3 | 4 | \ 0 |

Итак, в этом случае явсе еще говорите, что a[] имеет размер 5 или я должен сказать, что он имеет размер 6?

И, если я скопирую его в массив: int b [4], что произойдет в этомдело?Что произойдет с целочисленной переменной в местоположении 4 из a[], перезапишет ли она \0?

Спасибо.

Ответы [ 3 ]

14 голосов
/ 24 января 2011

Массивы, как правило, автоматически не заканчиваются нулем.Строки C заканчиваются нулем, но это не строка C.

6 голосов
/ 24 января 2011

Есть только | 0 | 1 | 2 | 3 | 4 |в памяти, а не шестой.Так что размер 5.

2 голосов
/ 24 января 2011

Отличное объяснение массивов для начинающих.

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