Этапы разработки программы. Разработка или выбор алгоритма решения поставленной задачи. Оформление документации на программу, страница 8

Вычисляется операнд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                определение размера объекта или типа в байтах

(тип)                 приведение к типу

~                       побитовое отрицание

!                        логическое не

-                        унарный минус

&                      определение адреса

*                       обращение по адресу

*,/,%/+,-           арифметические операции

<<,>>               операции сдвига

<,<=,>,>=

==,!=                операции отношения    

&                      побитовое и   

^                       побитовое исключающее или

|                        побитовое или

&&                   логическое и

||                        логическое или

?:                      условная операция

=,+=,-=             простое и составное присваивание

,                        последовательное вычисление