4. ВыраженияВ главе 3 мы рассмотрели типы данных – как встроенные, так и предоставленные стандартной библиотекой. Здесь мы разберем предопределенные операции, такие, как сложение, вычитание, сравнение и т.п., рассмотрим их приоритеты. Скажем, результатом выражения 3+4*5 является 23, а не 35 потому, что операция умножения (*) имеет более высокий приоритет, чем операция сложения (+). Кроме того, мы обсудим вопросы преобразований типов данных – и явных, и неявных. Например, в выражении 3+0.7 целое значение 3 станет вещественным перед выполнением операции сложения. 4.1. Что такое выражение?Выражение состоит из одного или более операндов, в простейшем случае – из одного литерала или объекта. Результатом такого выражения является r-значение его операнда. Например: void mumble() { 3.14159; "melancholia"; upperBound; } Результатом вычисления выражения 3.14159 станет 3.14159 типа double, выражения
"melancholia" – адрес первого элемента строки типа const char*. Значение
выражения upperBound – это значение объекта upperBound, а его типом будет тип
самого объекта. salary + raise ivec[ size/2 ] * delta first_name + " " + 1ast_name Операции обозначаются соответствующими знаками. В первом примере сложение применяется
к salary и raise. Во втором выражении size делится на 2. Частное используется
как индекс для массива ivec. Получившийся в результате операции взятия индекса
элемент массива умножается на delta. В третьем примере два строковых объекта
конкатенируются между собой и со строковым литералом, создавая новый строковый
объект. ptr != 0 && *ptr != 0 Выражение состоит из трех подвыражений: проверку указателя ptr, разыменования ptr и проверку результата разыменования. Если ptr определен как int ival = 1024; int *ptr = &ival; то результатом разыменования будет 1024 и оба сравнения дадут истину. Результатом
всего выражения также будет истина (оператор && обозначает логическое
И). Содержание |
Нет комментариев. Оставить комментарий: |