К операциям присваивания относятся все операции, которые меняют значение одного из операндов.
Группы операций присваивания:
• обычное присваивание (=);
• присваивание, соединенное с одной из бинарных операций (+=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^=);
• операции инкремента (++) и декремента (--) – увеличение и уменьшение на единицу.
Например, если объявить переменные:
int a,b,c;
тогда можно использовать такие операторы присваивания:
a=b=c; // эквивалентно: b=c; a=b;
a +=c; // эквивалентно: a=a+c;
b++; // получить с и увеличить на 1 после использования: b=b+1
++с; // увеличить с на 1 до использования: с=с+1
b--; // получить с и уменьшить на 1 после использования: b=b-1
--a; // уменьшить c на 1 до использования: a=a-1
Арифметические операции.
Арифметические операции: *, /, % (остаток от деления), +, -
Например,
a=(a+5)%3; // a присвоить остаток от деления a+5 на 3
b=a--;
d=b/а;
Операции сравнения и логические операции.
В языке Си отсутствует базовый тип данных для представления логических значений (false, true), поэтомуиспользуются целочисленные значения: 0 всегда является ложью, 1 – истиной. Такие значения дают операции отношения и логические операции.
|
|
Операции сравнения: <, <=, >, >=
Логические операции: ==,!=, &&, ||
Все операции сравнения дают в качестве результата значения 1 или 0, поэтому их можно использовать совместно с арифметическими и другими операциями:
a=b<c; // запомнить результат сравнения
a=(b<c)*3 // принимает значения 0 или 3
Условная операция.
Условная операция позволяет встроить в любое выражение некоторое подобие условного оператора, обозначается как ?: и означает:
<условие>? <выражение_для_истины>: <выражение_для_лжи>
Если объявить
int a,b,c,d;
тогда
c=d-a>b?a:b; // с=а, если d-а>b, иначе, с=b
Операция явного преобразования типа.
Операция преобразования (приведения) типа позволяет преобразовать значение операнда к заданному типу. В качестве операнда используется унарное выражение, которое может быть переменной, константой или выражением.
Формат операции преобразования типа:
(<тип>)<операнд>;
Например,
int x;
float y;
y=(float)x/3;