Операции над простыми типами.
Арифметические операции:
+ (плюс, унарный и бинарный)
- (минус, унарный и бинарный)
* (умножение)
/ (деление)
% (остаток от деления)
Следует заметить, что целое деление дает целый результат: 7/2 есть 3. Над целыми может выполняться операция % получения остатка: 7%2 равно 1.
При присваивании и арифметических операциях C++ выполняет все осмысленные преобразования между основными типами, чтобы их можно было сочетать без ограничений.
Логические операции
& (поразрядная операция И), && (логическое И)
| (поразрядная ИЛИ), || (логическое ИЛИ)
^ (исключающее ИЛИ)
<< (логический сдвиг влево)
>> (логический сдвиг вправо)
В языке C логические операции применяются к целым, так как в С нет отдельного логического типа данных. В языке C++ имеется тип данных bool.
Операции сравнения:
== (два подряд идущих знака равно – сравнение на равенство)
!= (не равно)
< (меньше)
> (больше)
<= (меньше или равно)
>= (больше или равно)
В C++ есть операция присваивания =, а не оператор присваивания, как в некоторых языках, например, Турбо Паскале. Операция не только присваивает значение справа левому аргументу, но и возвращает это значение. Таким образом, присваивание может встречаться в неожиданном контексте; например, x=3*(a=2*x); Это бывает полезно. a=b=c означает присвоение c объекту b, а затем объекту a.
Другим свойством операции присваивания является то, что она может совмещаться с большинством бинарных операций, таким образом появляются операции +=, -=, *=, /=, %= (например, x+=5; то же самое, что x=x+5; ). Например, x[i+3]*=4 означает x[i+3]=x[i+3]*4, за исключением того факта, что выражение x[i+3] вычисляется только один раз. Это дает привлекательную степень эффективности без необходимости обращения к оптимизирующим компиляторам. К тому же это более кратко.
Операция ‘,’ (запятая) – операция последовательного вычисления. Вычисляет значение левого и правого операнда, возвращает значение правого операнда. Например: x=2, b=3 – то же самое, что и x=2; b=3;
Допустимой в языке является такая конструкция
c=(a=8,9);
В a будет помешено значение 8, в c – значение 9. Заметьте, что если вы имели в виду число 8.9, но случайно поставили запятую вместо точки, то никакой ошибки не будет выведено.
Унарные операции.
Операция sizeof(объект) – возвращает размер в байтах того объекта, к которому применяется.
Операции -- и ++ - декремент и инкремент – уменьшают или увеличивают значение аргумента на 1. Могут быть записаны как перед операндом (префиксная форма), так и после операнда (постфиксная форма). Если знак операции записан перед операндом, то изменение операнда происходит до его использования в выражении. Например:
x=3;
a=++x; //a=4, x=4
Ещё пример:
x=3;
a=++x+ ++x; //a=10, x=5
В данном примере x увеличивается на единицу два раза, после чего вычисляется выражение.
В языке C++ имеется одна тернарная операция – условная операция, которая имеет следующий формат:
операнд1 ? операнд2 : операнд3
Если операнд1 не равен 0, то результатом операции будет являться значение операнда 2, иначе – операнда 3.
5.3. Операторы-выражения.
Оператор-выражение состоит из выражения, за которым следует точка с запятой. Например:
a = b*3+c;
b*8;
x++;
Пустой оператор.
Простейшей формой оператора является пустой оператор:
;
Он не делает ничего. Однако он может быть полезен в тех случаях, когда синтаксис требует наличие оператора, а вам оператор не нужен
