Эта конструкция создает новое имя для уже имеющегося типа «указатель на символ». Таким образом, ключевое слово typedef позволяет создавать синонимы уже имеющимся типам.

Выражения

Выражения – это операторы, операнды и разделители, определяющие некоторое вычисление и возвращающие значение. В следующем разделе будут рассматриваться основные операторы языка С++, а в этом разделе нужно коснуться приоритета выполнения операторов в выражениях. Правильное понимание того, в каком порядке будут выполняться операторы, поможет избежать многих досадных ошибок, которые не в состоянии обнаружить компилятор. В справочной системе, в разделе, посвященном языку C/C++, есть страница Operator Precedence and Associativity, посвященная этому вопросу. На этой странице указаны практически все операторы языка C++.

Операторы

Операторы – это лексемы, которые производят некоторые вычисления, если их применить к переменным или другим объектам внутри выражения.

Арифметические операторы

Арифметические операторы используются для математических вычислений. Они приведены в табл. 4.1.

Инкремент и декремент могут быть как постфиксными, так и префиксными.

Это демонстрирует следующий фрагмент кода:

int x=1, y=0;

y = x++; //Сначала y получит значение x (1), затем x будет увеличен на 1

y = ++x; //Сначала x будет увеличен на 1, затем полученное значение будет

//увеличено на единицу

Будет иметь смысл и выражение ++x = 5. А вот выражение x++ = 5 не имеет смысла, поскольку мы пытаемся присвоить значение 5 операции инкремента. Таблица 4.1. Арифметические операторы

Битовые операторы

Битовые операторы приведены в следующем списке.

? & – побитовое И. Если оба бита равны 1, то результат тоже будет равен 1, иначе результат будет равен 0.

? | – побитовое ИЛИ. Оператор сравнивает два бита и возвращает 1, если хотя бы один из битов равен 1, иначе результат будет равен 0.

? ^ – побитовое исключающее ИЛИ. Оператор сравнивает два бита и возвращает 1 только тогда, когда один из битов равен 0, а другой – 1, иначе результат будет равен 0.

? ~ – побитовая инверсия, при которой значение каждого бита меняется на противоположное.

«– побитовый сдвиг вправо. В этом случае последний бит теряется, для беззнакового значения слева вдвигается 0, для знакового – расширяется знак.

? «– побитовый сдвиг влево. В этом случае левый бит теряется, а справа вдвигается ноль.

Тернарный условный оператор Оператор? имеет три операнда. Пример его применения показан ниже.

Е1?Е2:ЕЗ

Перейти на страницу:

Похожие книги