Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка по С++.doc
Скачиваний:
7
Добавлен:
28.08.2019
Размер:
250.88 Кб
Скачать

3.9. Приоритеты операций и порядок вычислений

Табл. 6 Приоритеты операций

Ранг

Операция

Ассоциативность

1

() [] -> .

справа налево

2

! ~ -(смена знака) ++ -- &(адрес) * (тип) sizeof

слева направо

3

* / %

справа налево

4

+ -

справа налево

5

<< >>

справа налево

6

< <= >= >

справа налево

7

== !=

справа налево

8

&

справа налево

9

^

справа налево

10

|

справа налево

11

&&

справа налево

12

||

справа налево

13

?

слева направо

14

= *= /= %= += -= &= ^= |= <<= >>=

слева направо

15

,

справа налево

В языке СИ операции с высшими приоритетами вычисляются первыми. Наивысшим приоритетом является приоритет равный 1. Операции одного ранга имеют одинаковый приоритет, и если их в выражении несколько, то они выполняются в соответствии с правилом ассоциативности, либо слева направо, либо справа налево. Приоритеты и порядок операций приведены в табл. 6.

4. Операторы языка си

4.1. Составной оператор

Составной оператор представляет собой несколько операторов и объявлений, заключенных в фигурные скобки:

{ оператор_1;

оператор_2;

...

оператор_n;}

Заметим, что в конце составного оператора точка с запятой не ставится.

4.2. Условный оператор

Формат оператора:

if (выражение) оператор-1; [else оператор-2;]

Выполнение оператора if начинается с вычисления выражения.

Далее выполнение осуществляется по следующей схеме:

если выражение истинно (т.е. отлично от 0), то выполняется оператор-1.

если выражение ложно (т.е. равно 0),то выполняется оператор-2.

если выражение ложно и отсутствует оператор-2 (в квадратные скобки заключена необязательная конструкция), то выполняется следующий за if оператор.

Пример:

if (i < j)i++;

else {j = i-3; i++; }

Этот пример иллюстрирует также и тот факт, что на месте оператор-1, так же как и на месте оператор-2 могут находиться сложные конструкции.

Допускается использование вложенных операторов if. Чтобы сделать программу более читабельной, рекомендуется группировать операторы и конструкции во вложенных операторах if, используя фигурные скобки даже если они не требуются. Если же фигурные скобки опущены, то компилятор связывает каждое ключевое слово else с наиболее близким if, для которого нет else.

Примеры:

if (t>b)

{

if (b < r) r=b;

}

else r=t;

Если же в программе опустить фигурные скобки, стоящие после оператора if, то программа будет иметь следующий вид:

if ( a>b )

if ( b < c ) t=b;

else r=t;

В этом случае else воспринимается как часть второго оператора if.