Квадратные скобки [ ] играют роль бинарных операций при индексировании
Круглые () скобки играют роль бинарных операций при вызове функций.
Операции присваивания.
Логические бинарные операции.
&& - конъюнкция арифметических операндов или отношений.
Результат 0 (ложь) или 1 (истина)
|| - дизъюнкция арифметических операндов или отношений.
3 < 5 = 1 3 > 5 = 0 3 = = 5 = 0
(3 + 4 > 5 && 3+5 > 4 && 4 + 5 > 3) = 1
= присвоить значение выражения из правой части операнду левой части.
Р= 5 – 2* х;
*= присвоить операнду левой части произведение значений обоих операндов
Р*=2 ~ р = р*2
/= присвоить операнду левой части частное от деления левого операнда
на значение правого.
p/= 2.2 – α ~ p = p/(2.2 – α)
%= присвоить операнду левой части остаток от целочисленного деления
Левого операнда на правый.
N%=3 ~ N = N % 3
+ = присвоить операнду левой части сумму значений обоих операндов
А += В ~ А = А + В
- = присвоить операнду левой части разность значений обоих операндов
Х - = 4.3 – Z ~ X = X – (4.3 – Z)
<<= a <<=4 ~ a = a << 4
>>= a >>=4 ~ a = a >> 4
&= присвоить целочисленному операнду левой части значение, полученное
поразрядной конъюнкцией его битового представления с битовым
представлением целочисленного операнда правой части.
e&= 44 ~ e = e & 44
! = - дизъюнкция
^ = - исключающая ИЛИ
<имя функции> (< список параметров >)
<имя массива[индекс]> - это переменная с индексом
В языке С++ принято, что индексы начинаются с нуля, т.е. массив
int Z[3]
состоит из элементов z[0], z[1], z[2].
Рассмотрим пример, использующий знаки операций.
Постановка задачи: вывести на экран символьный массив ABCDEF в столбик.
// Ex_03.CPP - работа со знаками операций.
#include <iostream.h>
void main()
{ char MASSIV[]=”ABCDEF”;
int i = 0; // i – номер элемента массива
while ( MASSIV[i] != ‘\0’)
cout << ‘\n’ << MASSIV[i++];
}
8. Условная операция:
<выражение1> ? <выражение2> : <выражение3>
Алгоритм: вычисляется значение выражение1 . Если оно истинно, т.е. ≠ 0, то результатом является значение выражения2, в противном случае выражения3.
Например:
X<0 ? –X : X -| X |
9. Каноническая операция явного преобразования типа ( как в С) :
(<имя типа>) <операнд>
позволяет преобразовать значение операнда к нужному типу. В качестве операнда можно использовать идентификатор, const или выражение, заключенное в круглые скобки.
Например:
(long) 10 - внутренне представление имеет длину 4 байта.
(char) 10 - внутренне представление имеет длину 1 байт.
(float) 10 – внутреннее представление имеет длину 4 байта (формат
вещественного числа)
Еще пример:
//Ex_04.CPP - явное преобразование типа
#include<iostream.h>
voidmain()
{ int INTEGER = 50;
float FLOATING = 15.85;
INTEGER = (int) FLOATING; // явное преобразование
cout << “New integer : “;
cout << INTEGER << “\n”;
}
Результат:
New integer: 15
Результат будет таким же в данном примере, если использовать неявное преобразование:
INTEGER=FLOATING; // неявное преобразование
Кроме рассмотренной канонической операции явного преобразования типов в языке С++ существует функциональная форма преобразования типов:
<имя типа>(<операнд>)
В этом случае тип имеет простое, несоставное наименование.
Например:
long (2) - длина 4 байта
double (2) - длина 8 батов
unsigned long(2) - ошибка !
Приведем таблицу приоритетов (рангов) операций в языке С++.
Грамматика языка С++ определяет 16 рангов операций. Операции ранга 1 имеют наивысший приоритет. Если в выражении используются несколько несколько операций одного ранга, то они выполняются либо слева–направо (->), либо справа-налево (<-).