Си++: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 239:
<font color="green">0</font>[&x] = x + x; <font color="gray">// контрольный вопрос : что делает эта строчка?</font>
Правда, я ещё ни разу не видел, чтобы такая экзотическая запись где-нибудь использовалась.
 
Конечно, ничто не в силах нам запретить обратиться к элементу 20-элементного массива с индексом 138, равно как и к минус первому элементу. Всё дело в том, что язык не располагает встроенными средствами проверки выхода за границы массива. Предполагается, что пользователь должен самостоятельно следить за тем, чтобы не вылезти за границы массива.
 
Кстати, если массив <i>m<i> объявлен в программе где-то далеко, то вы можете "на ходу" узнать количество элементов в нём в помощью вот такой конструкции:
<font color="blue">sizeof</font>(m) / <font color="blue">sizeof</font>(m[<font color="green">0</font>])
На самом деле, этот метод предпочтительнее, чем прямое указание размера, потому что если вдруг размер массива нужно изменить, то переписать нужно всего одно число при объявлении, вместо того, чтобы ползать по коду, выискивая места, где ещё понадобилось это значение.
 
=== Операторы управления динамической памятью ===