Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Выражения

Читайте также:
  1. Анализ кода выражения лица.
  2. В этом разделе рассматриваются некоторые приемы, а также слова и выражения, характерные для описания ситуаций в разговорной речи.
  3. Выражения объекта System
  4. Выражения, используемые при написании и обсуждении научной работы
  5. Другие математические выражения
  6. Манифестация как новый способ выражения общественного мнения
  7. Наиболее распространенные выражения эмоций.
  8. Напишите сочинение, раскрывая смысл данного выражения и используя примеры из текста.
  9. Одночлены и многочлены. Степень одночлена и многочлена. Стандартный вид многочлена. Действия над многочленами. Преобразование целого выражения в многочлен.

Из констант и переменных, операций над ними, вызовов методов и скобок составляются выражения (expressions). Разумеется, все элементы выражения должны быть совместимы, нельзя написать, например, 2 + true. При вычислении выражения выполняются четыре правила:

1. Операции одного приоритета вычисляются слева направо: х + у + z вычисляется как (х + у) + z. Исключение: операции присваивания вычисляются справа налево: х = у = z вычисляется как х = (у = z).

Левый операнд вычисляется раньше правого.

Операнды полностью вычисляются перед выполнением операции.

Перед выполнением составной операции присваивания значение левой части сохраняется для использования в правой части.

Следующие примеры показывает особенности применения первых трех правил. Пусть

int а = 3, b = 5;

Тогда результатом выражения ь + (Ь = 3) будет число 8; но результатом выражения (Ь = 3) + ь будет число 6. Выражение ь += (Ь = 3) даст в результате 8, потому что вычисляется как первое из приведенных выше выражений.

Знатокам C/C++

Большинство компиляторов языка C++ во всех этих случаях вычислят значение 8.

Четвертое правило можно продемонстрировать так. При тех же определениях а и ь в результате вычисления выражения ь += а += ь += 7 получим 20. Хотя операции присваивания выполняются справа налево и после первой, правой, операции значение ь становится равным 12, но в последнем, левом, присваивании участвует старое значение ь, равное 5. А в результате двух последовательных вычислений а += b += 7; b += а; получим 27, поскольку во втором выражении участвует уже новое значение переменной ь, равное 12.

Знатокам C/C++

Большинство компиляторов C++ в обоих случаях вычислят 27.

Выражения могут иметь сложный и запутанный вид. В таких случаях возникает вопрос о приоритете операций, о том, какие операции будут выполнены в первую очередь. Естественно, умножение и деление производится раньше сложения и вычитания. Остальные правила перечислены в следующем разделе.

Порядок вычисления выражения всегда можно отрегулировать скобками, их можно Ътавить сколько угодно. Но здесь важно соблюдать "золотую середину". При большом количестве скобок снижается наглядность выражения и легко ошибиться в расстановке скобок. Если выражение со скобками корректно, то компилятор может отследить только парность скобок, но не правильность их расстановки.

Приоритет операций

Операции перечислены в порядке убывания приоритета. Операции на одной строке имеют одинаковый приоритет.

1. Постфиксные операции ++ и —.

2. Префиксные операции ++ и —, дополнение ~ и отрицание!.




Дата добавления: 2015-09-11; просмотров: 42 | Поможем написать вашу работу | Нарушение авторских прав

Примечание | В какой бы форме ни записывались символы, компилятор переводит их в Unicode, включая и исходный текст программы. | AName theName a2Vh36kBnMt456dX | Замечание для специалистов | Целые типы | Вычитание - (дефис); | Листинг 1.3. Неверное определение переменной | Побитовые операции | Блоки операторов часто используются для ограничения области действия переменных и просто для улучшения читаемости текста программы. | Листинг 1.4. Вычисление корней квадратного уравнения |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.012 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав