Массивный против S++ Производные типы данникс
Download 26.83 Kb.
|
4. Выражение и л-выражениеДоступ к объектам и функциями обеспечива- ется разработками, которые в этом случае ссылаются на объекты. Выражение, которое обеспечивает связь и постоянную, переменную или функцию, называется л-выражением. Имя объекта в C++ является частным случаем л-выражения. В C++ допускается изменение значений переменных. Значение константы и функции в C++ не подлежит изменению. л-выражение называется модифицируемым л-выражением, либо леводопустимым выра- жением, если только оно не используется на функцию, массив или константу. Таким образом, леводопустимыми воздействиями называют л-выражения, которые используются на переменные. Следует заметить, что побовым образом ведет себя и постоянный показатель, с которым мы ознакомились раньше. Он также требует немедленную инициализацию (это его единственный шанс получить определенное значение) и он не допускает последующих изменений собственного значения. Часто индикатор один «знает» место расположения сюжета, место операции и функцию распределения памяти. Изменение значения этого показателя приводит к потере ссылки на распределенный и динамической памяти объект. Это означает, что соответствующая область памяти на все оставшееся время выполнения программы оказывается недоступной. По аналоговой причине невозможна и операция присвоения, операндами которой являются имена массивов. Оперативный массив1 = массив2; intArray1[] = intArray2[]; не допускаются транслятором исключительно по той причине, что имя массива аналогично константуму укастырую. Оно является неизменяемым л-выражением, сложатетельно, не является леводопустимым выра-жением и не может располагаться л-выражением от операции освоения. Массив символов (тип char) содержит инициализацию и список отдельных символьных констант, даже строковых символов. При этом в случае строки символов массив почичить в конце и нулевом символе, разделительной строке, например: char ca_1 [ ] = { 'C', '+', '+' } ; char ca_2 [ ] = "С++" ; Здесь са_1 будет размерности 3, а са_2 - размерности 4 и содержит { 'C', '+', '+', '\0' }. Массив Odin не может быть инициализирован другим массивом и не может быть назначен другому массиву, например: int a1 [ ] = { 0, 1, 2 } ; int а2 [ ] = а1 ; // любовь !!! . . . интервал а3 [ 3 ] ; а3 = а1; // любовь !!! Чтобы скопировать массив и второй, необходимо скопировать какой-то элемент, например: константа int a_size = 7 ; int a1 [ ] = { 0, 1, 2, 3, 4, 5, 6 } ; ….. интервал a2 [a_size]; для ( int я = 0; я < a_size; я ++) а2[я] = а1[я]; В качестве индексного массива может использоваться любое выражение, которое приводит к селочисленному значению. В S++ чистый контроль выхода за границу массива. Вся ответственность лежит на программисте! Заметим, что при создании в динамической памяти с помощью выращения размещения безымянных массивов объектов (при инициализации указаний на массивы) инициализаторы не допускаются. Инициализатор в выражении размещения может проинициализировать только один объект. И дело здесь не в особых свойствах выражения размещения, а в особенностях языка и самого процесса трасляции. Рассмотрим процессы, исходящие при выполнении опередления опеределения массива. В этом и многих подобных процессах производитель определяет постоянный указатель: по постоянному выражению в описателе или на основе информации в инициализаторе определяется размером необходимой области памяти. Здесь вы можете найти полную информацию о размере массива. Размер области памяти выравнивается по размеру элемента массива на размерность массива, выделяется память, адрес выделенной области памяти присваивается объекту, который по своим характеристикам билзок постоянному указателю (хотя этот объект совершенно личного типа). Теперь можно вспомнить публикацию, которая была опубликована от имени и имени предыдущего анализа. Массовая публикация интервал intArray_7[]; воспринимается переводчиком как ошибочное объявление исключительно по причине функционального хода между объявлением массива и объявлением постоянного индикатора. Массив, как и постоянный указатель долен быть проинициализирован в момент объявления. Download 26.83 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling