Вычисляется операнд1, если он не равен нулю, то вычисляется операнд2 и значением выражения становится его значение, иначе вычисляется операнд3 и значением выражения становится его значение.
Пример:
#include<stdio.h>
main()
{ int i=6, j=4;
int result=(i<j)?i:j;
printf("%d\n", result);}
9.4. Операции присваивания
В языке C присваивание является операцией, в отличие от языка PASCAL, в котором существует специальный оператор присваивания.
Синтаксис оператора присваивания языка PASCAL:
<Имя переменной>:= <выражение>;
Операции присваивания в языке Си могут быть бинарными и унарными.
1) Унарные
++ - инкремент (увеличение на 1)
- - - декремент(уменьшение на 1)
Пример:
if(++x>0) Для префиксной формы сначала увеличиваем или уменьшаем на 1 значение, а затем это измененное значение участвует в вычислении.
if(x++>0) Для постфиксной формы – рперанд сначала участвует в вычислении выражения, а потом изменяется на 1.
2) Бинарные
"=" – простое присваивание.
<операнд1>=<операнд2>
В отличии от языка PASCAL в С операция присваивания может использоваться в выражениях: if((f=x-y)>0) printf("число х больше у"). В языке C принято следующее правило. Любое выражение с операцией присваивания, заключенное в круглые скобки, имеет значение, равное присвоенному.
Например: выражение (а=7+2) имеет значение 9.
выражение ((а=7+2)<10) всегда имеет истинное значение, т.е. значение не равное 0
Составное присваивание:
+= *= <<= &= -= /= >>= |= ^=
Представляет собой операцию присваивания, скомбинированную с другой бинарной операцией. Сначала выполняется действие, определенное бинарной операцией, а потом осуществляется присваивание:
<выражение1>+=<выражение2> эквивалентно <выражение1>=<выражени1>+<выражение2>.
- компактная запись
- сокращение времени вычисления;
6.5.Приаритет и ассоциативность операций.
Порядок вычислений определяется приоритетом операций. Первой выполняется операция, имеющая максимальный приоритет и т.д.. В том случае, когда подряд следуют несколько операций одного вида, то порядок их вычисления определяется ассоциативностью операций. Изменить приоритет выполнения можно с использованием скобок (). Ассоциативность слева направо означает, что первой будет выполняться операция, знак которой записывается левее остальных. Ассоциативность справа налево – аналогично, но правее.
Унарные, тернарные, операции присваивания ассоциируются справа налево, остальные слева направо.
Операции C
max
[ ] задание элемента массива
( ) вызов функции
. выбор поля структуры
à выделения поля структуры с наименьшим указателем
++, -- инкремент и декремент
sizeof определение размера объекта или типа в байтах
(тип) приведение к типу
~ побитовое отрицание
! логическое не
- унарный минус
& определение адреса
* обращение по адресу
*,/,%/+,- арифметические операции
<<,>> операции сдвига
<,<=,>,>=
==,!= операции отношения
& побитовое и
^ побитовое исключающее или
| побитовое или
&& логическое и
|| логическое или
?: условная операция
=,+=,-= простое и составное присваивание
, последовательное вычисление
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.