KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Владимир Волков - Программирование для карманных компьютеров

Владимир Волков - Программирование для карманных компьютеров

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Владимир Волков, "Программирование для карманных компьютеров" бесплатно, без регистрации.
Перейти на страницу:

Операторы

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

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

Арифметические операторы используются для математических вычислений. Они приведены в табл. 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:ЕЗ

Первым выполняется операнд Е1. Если результат его выполнения равен true, то выполняется операция Е2, а ЕЗ игнорируется. Если результат выполнения Е1 равен false, то выполняется ЕЗ, а Е2 игнорируется. Например, в коротком выражении а = (х>у)?х: у переменная а всегда будет получать большее значение. Операторы сравнения и равенства

Операторы сравнения и равенства приведены в табл. 4.2.

Выполнение этих операторов между двумя операндами возвращает логический результат true, если условие выполняется, или значение false, если оно не выполняется. Операторы == и!= могут быть использованы для сравнения указателей, в то время как остальные операторы для этого использовать нельзя.

Таблица 4.2. Операторы сравнения и равенства Логические операторы

Логические операторы языка C++ приведены в табл. 4.3.

Таблица 4.3. Логические операторы Операторы указателя, разыменования и получения адреса

Оператор * предназначен для объявления указателя. Указатель содержит в себе адрес блока памяти, на который он указывает. Этот же оператор разыменовывает указатель, то есть позволяет получить доступ к содержимому объекта, на который создан указатель.

Оператор & (адрес) предназначен для получения адреса, РїРѕ которому содержится значение конкретной переменной. РљРѕРіРґР° РјС‹ обращаемся Рє переменной РїРѕ имени, РјС‹ всегда получаем доступ Рє ее значению, РЅРѕ РЅРµ Рє области памяти, РІ которой это значение хранится. РРЅРѕРіРґР° надо знать, РІ какой конкретно области памяти хранится тот или РёРЅРѕР№ объект. Р’ этом случае следует использовать оператор разыменования.

Другие операторы

? () – СЃРєРѕР±РєРё. РћРЅРё позволяют группировать выражения, обеспечивая РёРј высший приоритет исполнения, выделять выражения проверки условия РІ операторах ветвления или цикла. Также СЃРєРѕР±РєРё показывают, что определенное РёРјСЏ является функцией Рё заключают РІ себе параметры функций. РРЅРѕРіРґР° СЃРєРѕР±РєРё обозначают операцию СЏРІРЅРѕРіРѕ приведения типа.

? {} – фигурные скобки. Они предназначены для обозначения начала и конца составного выражения, объединяющего несколько простых выражений.

? [] – квадратные скобки служат для объявления массивов.

? sizeof – возвращает число типа int, показывающее объем памяти в байтах, занимаемый операндом. Операнд может быть любым выражением, именем типа или объекта.

?. – точка, предназначена для выбора члена структуры или объединения в выражении типа s.m, где s – объект класса структуры или объединения, а m – член структуры или объединения.

? – > стрелка, предназначена для выбора члена структуры или объединения в выражении типа s->m, где s – указатель на объект класса структуры или объединения, а m – член структуры или объединения.

Специфичные операторы C++

?:: доступ к объекту-владельцу данного объекта, классу-владельцу данного члена или разрешение области видимости. Доступ к объекту-владельцу данного объекта для динамических объектов или к классу-владельцу для статических объектов будет рассматриваться позже.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*