Теоретические сведения. Операция – это лексема, определяющая специальный способ записи некоторых действий.
Операция – это лексема, определяющая специальный способ записи некоторых действий.
Операнд – это лексема, к которой применена операция.
Разделители (знаки пунктуации) предназначены для разделения ключевых слов и идентификаторов (имен).
Знак | Назначение |
[] | ограничители-индексы одно- и многомерных массивов |
() | группирование выражений и указание на вызовы функций и их параметры |
{} | ограничители области составного оператора и блока |
, | операция разделения элементов списков |
; | терминатор оператора (пустой оператор) |
: | разделитель метки и оператора |
... | обозначение переменного числа параметров в функциях и их прототипах |
* | знак умножения и доступа через указатель |
= | знак операции присваивания и инициализации |
# | признак директивы предпроцессора |
Выражение – это последовательность операндов, разделителей и знаков операций, результатом которой является определенное значение.
Оператор – конструкция языка, посредством которой задается очередной шаг вычислительного процесса.
В соответствии с количеством операндов, которые используются в операциях они делятся на:
· унарные (одноместные) – один операнд;
· бинарные (двуместные) – два операнда;
· тернарную (трехместная) – три операнда.
Программы на языке С++ строятся из операторов, операторы – из выражений, выражения – из операндов и операций.
В языке С++ имеются следующие классы операций:
· арифметические операции (аддитивные, мультипликативные, увеличения (increment) и уменьшения (decrement));
· операции присваивания;
· условие (тернарная операция);
· логические операции;
· поразрядные (побитовые) операции (логические, операции сдвига);
· операции сравнения (операции отношения, операции сравнения на равенство).
Присваивание (операция и оператор)
Символ '=' в языке С++ обозначает бинарную операцию, у которой в выражении должно быть два операнда – левый (модифицируемое именующее выражение – обычно переменная) и правый (обычно выражение).
Если z – имя переменной, то z=2.3+5.1 есть выражение со значением 7.4, которое присваивается переменной z.
Если данное выражение оканчивается символом ';', то оно становится оператором присваивания. То есть z=2.3+5.1; – это оператор присваивания переменной z значения 7.4.
В операторе присваивания используется операция присваивания, обозначаемая символом '='.
Синтаксис:
<выражение слева> = <выражение справа>;
Например: c = a * b;
Действие такого оператора можно описать следующими словами: «переменной с присваивается результат умножения значения а на значение b». Значение, присваиваемое переменной с, равняется произведению текущих значений переменных а и b.
Алгоритм работы оператора присваивания:
1. Вычислить левостороннее значение первого операнда.
2. Вычислить правостороннее значение второго операнда.
3. Присвоить вычисленное правостороннее значение левостороннему значению.
4. Возвратить вычисленное правостороннее значение как результат выполнения операции.
Правостороннее выражение может содержать несколько операций присваивания. В этом случае с помощью одного оператора присваивания можно присвоить значения нескольким переменным, то есть организовать «множественное» присваивание.
Например: a=b=c=5.5+8;
При выполнении оператора значение 13.5 присваивается сначала переменной c, затем переменной b, а потом переменной a.
Арифметические операции (операнды – числа или указатели)
Операция | Результат | Ограничения | Примеры выражений |
Аддитивные | |||
x+y | сумма х и у | если один из операндов является указателем, то другой должен быть целой величиной (типа int, char, short, long или unsigned) | int a=5, b=2; char c='A' (код 65) float d=2.3; a+b (результат=7) a+c (результат=70) а+d (результат=7.3) |
x-y | разность х и у | если один из операндов является указателем, то другой должен быть целой величиной или указателем с тем же базовым типом | int a=5, b=2; char c='A' (код 65) float d=2.3; a-b (результат=3) a-c (результат=-60) а-d (результат=2.7) |
Мультипликативные | |||
x*y | произведение х на у | х и у не должны быть указателями | int a=5, b=2; char c='A' (код 65) float d=2.3; a*b (результат=10) a*c (результат=325) а*d (результат=11.5) |
x/y | частное от деления х на у | х и у не должны быть указателями (y¹0) | int a=5, b=2; char c='A' (код 65) float d=0.5; a/b (результат=2) a/c (результат=0) а/d (результат=10.0) |
х%y | остаток от деления х на у | х и у не должны быть типов double, float или указателями (y¹0) | int a=51, b=5; char c='A' (код 65) a%b (результат=1) c%b (результат=0) |
-х | изменение знака | х не должен быть указателем | int b=-2; char c='A' (код 65) float d=2.2; -c (результат=-65) -b (результат=2) -d (результат=-2.2) |
Увеличения (increment) и уменьшения (decrement) | |||
++x (--x) | x+1 (х-1) х увеличивается (уменьшается) перед использованием | х – числовое значение или указатель | int i=1, iv; iv = ++i ; (результат: iv=2, i=2) |
x++ (x--) | после использования х увеличивается (уменьшается) на 1 | х – числовое значение или указатель | int i=1, iv; iv = i++; (результат: iv=1, i=2) |
Дата добавления: 2015-02-16; просмотров: 613;