русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Первичные выражения


Дата добавления: 2015-01-16; просмотров: 574; Нарушение авторских прав


Первичные выражения, включающие ., ->, индексацию и об-ращения к функциям, группируются слева направо. Первичное выражение: идентификатор константа строка (выражение) первичное-выражение [выражение] первичное-выражение (список-выражений нео первичное-L-значение . Идентификатор первичное-выражение -> идентификатор список-выражений: выражение список-выражений, выражение Идентификатор является первичным выражением при условии, чтоон описан подходящим образом, как это обсуждается ниже. типидентификатора определяется его описанием. Если, однако, ти-пом идентификатора является "массив ...", то значением выра-жения, состоящего из этого идентификатора , является указа-тель на первый объект в этом массиве, а типом выражения бу-дет "указатель на ...". Более того, идентификатор массива неявляется выражением L-значения. подобным образом идентифика-тор, который описан как "функция, возвращающая ...", за иск-лючением того случая, когда он используется в позиции именифункции при обращении, преобразуется в "указатель на функ-цию, которая возвращает ...". Константа является первичным выражением. В зависимостиот ее формы типом константы может быть INT, LONG или DOUBLE. Строка является первичным выражением. Исходным ее типомявляется "массив символов"; но следуя тем же самым правилам,которые приведены выше для идентификаторов, он модифицирует-ся в "указатель на символы", и результатом является указа-тель на первый символ строки. (имеется исключение в некото-рых инициализаторах; см. П. 16.6.) Выражение в круглых скобках является первичным выражени-ем, тип и значение которого идентичны типу и значению этоговыражения без скобок. Наличие круглых скобок не влияет нато, является ли выражение L-значением или нет. Первичное выражение, за которым следует выражение вквадратных скобках, является первичным выражением. Интуитив-но ясно, что это выражение с индексом. Обычно первичное вы-ражение имеет тип "указатель на ...", индексное выражениеимеет тип INT, а типом результата является "...". ВыражениеE1[E2] по определению идентично выражению * ((E1) + (E2)).Все, что необходимо для понимания этой записи, содержится вэтом разделе; вопросы, связанные с понятием идентификаторови операций * и + рассматриваются в п.п. 15.1, 15.2 И 15.4соответственно; выводы суммируются ниже в п. 22.3. Обращение к функции является первичным выражением, закоторым следует заключенный в круглые скобки возможно пустойсписок выражений, разделенных запятыми, которые и представ-ляют собой фактические аргументы функции. Первичное выраже-ние должно быть типа "функция, возвращающая ...", а резуль-тат обращения к функции имеет тип "...". Как указывается ни-же, ранее не встречавщийся идентификатор, за которым непос-редственно следует левая круглая скобка, считается описаннымпо контексту, как представляющий функцию, возвращающую це-лое; следовательно чаще всего встречающийся случай функции,возвращающей целое значение, не нуждается в описании. Перед обращением любые фактические аргументы типа FLOATпреобразуются к типу DOUBLE, любые аргументы типа CHAR илиSHORT преобразуются к типу INT, и, как обычно, имена масси-вов преобразуются в указатели. Никакие другие преобразованияне выполняются автоматически; в частности, не сравнивает ти-пы фактических аргументов с типами формальных аргументов.Если преобразование необходимо, используйте явный переводтипа (CAST); см. П.п. 15.2, 16.7. При подготовке к вызову функции делается копия каждогофактического параметра; таким образом, все передачи аргумен-тов в языке "C" осуществляются строго по значению. функцияможет изменять значения своих формальных параметров, но этиизменения не влияют на значения фактических параметров. Сдругой строны имеется возможность передавать указатель притаком условии, что функция может изменять значение объекта,на который этот указатель указывает. Порядок вычисления ар-гументов в языке не определен; обратите внимание на то, чторазличные компиляторы вычисляют по разному. Допускаются рекурсивные обращения к любой функции. Первичное выражение, за которым следует точка и иденти-фикатор, является выражением. Первое выражение должно бытьL-значением, именующим структуру или объединение, а иденти-фикатор должен быть именем члена структуры или объединения.Результатом является L-значение, ссылающееся на поименован-ный член структуры или объединения. Первичное выражение, за которым следует стрелка (состав-ленная из знаков - и >) и идентификатор, является выражени-ем. первое выражение должно быть указателем на структуру илиобъединение, а идентификатор должен именовать член этойструктуры или объединения. Результатом является L-значение,ссылающееся на поименованный член структуры или объединения,на который указывает указательное выражение. Следовательно, выражение E1->MOS является тем же самым,что и выражение (*E1).MOS. Структуры и объединения рассмат-риваются в п. 16.5. Приведенные здесь правила использованияструктур и объединений не навязываются строго, для того что-бы иметь возможность обойти механизм типов. См. П. 22.1.


<== предыдущая лекция | следующая лекция ==>
Выражения | Унарные операции


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.349 сек.