Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы информатики и программир...docx
Скачиваний:
25
Добавлен:
12.11.2019
Размер:
6.53 Mб
Скачать

6.2.9.3. Логические операции

Допускаются следующие логические операции: && (И), || (Или, две верти­каль­ные черточки), ! (отрицание, восклицательный знак).

Аргументами логических операций могут быть любые числа, вклю­чая задаваемые аргументами типа char или логические переменные (bool). Ре­зультат логической операции аналогичен результату операции срав­нения. Вообще все числовые значения, отличные от ну­ля, интерпре­тируются как истина.

Логические операции имеют самый низкий приоритет.

В нимание! Вычисление выражений, содержащих логические опера­ции, производится слева напра­во и прекращается (усека­ется), как только удаст­ся определить резуль­тат, т.е. остальные проверки, не влияющие на ко­нечный результат, не производятся.

Для целочисленных переменных существуют операции поразрядного И (&), ИЛИ (^), исключающего ИЛИ (|, вертикальная черта), отрицания (~, тильда).

6.2.9.4. Операции присваивания

В одном операторе операция присваивания может встречаться несколько раз. Вычисления производятся справа налево.

Пример: а = ( b = c) * d; // в начале вычисляется b = c, далее a=b*d.

Пример использования многократного при­сваивания: a=b=c=d=e=0.

Операции a+=b, a-=b, a*=b и a/=b являются укороченной фор­мой записи, соответственно: а = а + b; а = а - b; a= а* b; а = а/b.

Префиксные и постфиксные операции “++” (два плюса) и “–“ (два минуса) исполь­зуют для уве­ли­че­ния (инкремент) и уменьшения (декре­мент) на единицу значения пере­мен­ной до использования переменной в выражении, если операция указана пе­ред именем переменной; если операция указана после имени перемен­ной, то после использования пере­мен­ной соответственно.

Если тип левой части присваивания отличается от типа правой части, то тип правой части приводится к типу левой.

Пример вычисления выражения и вывода его значения (50):

int main(int argc, char **argv) { int a,b,c=3,d=4,f=3,g,h=5,z=6,i;

a=z+(b=c*d*f +(g= h +(i=3))); printf (“%d\n”, a ); getch(); return 0;}

Операцию sizeof (размер) можно применить к константе, типу или переменной. В результате будет получено число байтов, занимаемых операндом. Если операндом является тип, то такой операнд следует заключить в круглые скобки. Если операнд - переменная, то скобки можно опустить.

Операция “запятая” применяется для связывания меж­ду собой выражений. Список выражений, разделенный запя­тыми, трактуется как единое выражение и вычисляется слева направо.

6.2.10. Операторы

6.2.10.1. Блоки и составные операторы

Любая последовательность операторов, заключенная в фигурные скоб­ки, является составным оператором (бло­ком). Составной оператор мо­жет использоваться везде, где синтаксис языка допускает обычный оператор. Идентификатор, объявленный в блоке, имеет область действия от точки объявления до конца блока.

6.2.10.2. Оператор возврата из функции ‑ return

return [<выражение>];

Оператор предназначен для выход из функции со значением указан­ного выражения. Если выражение отсутствует, то в объявлении функции это указывается параметром void перед именем функции.

6.2.10.3. Условный оператор ‑ if

if (<условие>) <оператор-1 > [else <оператор-2>]

Если условие истинно, то выполня­ется <оператор-1>, в противном случае - <оператор-2>. Синтаксис предписывает, что else всегда относится к ближайшему оператору if.

Пример вложенного оператора if:

int main(int argc, char **argv) { int i = 4, j = 6, k = 8; if (i < k) if (i > j)

printf ( “оператор 1\n” ); else printf ( “оператор 2\n”);getch(); return 0; }