if else switch case default
Переходы
break continue goto
Типы данных
char int short long unsigned float double struct union typedef
Классы памяти
auto extern register static
Разное
return sizeof
Еще не реализованное
entry
Применяемые только в некоторых системах
asm endasm fortran enum
ПРИЛОЖЕНИЕ В. ОПЕРАЦИИ ЯЗЫКА СИ
В языке Си предусмотрено множество операций. Затем мы приводим здесь таблицу операций, располагая их по приоритетам и показывая порядок выполнения. Мы рассказываем о всех операциях, за исключением поразрядных, которые будут рассмотрены в приложении Е.
I. Арифметические операции
+ |
Прибавляет величину, находящуюся справа, к величине, стоящей слева |
- |
Вычитает величину, стоящую справа, из величины, указанной слева |
- |
Будучи унарной операцией, изменяет знак величины, стоящей справа |
* |
Умножает величину справа на величину, находящуюся слева |
/ |
Делит величину, стоящую слева, на величину справа. Результат усекается, если оба операнда целые числа |
% |
Дает остаток от деления величины слева на величину, стоящую справа (только для целых чисел) |
++ |
Прибавляет 1 к значению переменной, стояшей слева (префикная форма), или к переменной, стояшей справа (постфиксная форма) |
-- |
Аналогично ++, но вычитает 1 |
Операции (от высшего приоритета к низшему) |
Порядок выполнения |
() {} -> . |
Л-П |
! ~ ++ -- - (тип) * & sizeof (все унарные) |
П-Л |
* / % |
Л-П |
+ - |
Л-П |
<< >> |
Л-П |
< <= > >= |
Л-П |
== !== |
Л-П |
& |
Л-П |
/\ |
Л-П |
| |
Л-П |
&& |
Л-П |
|| |
Л-П |
?: |
Л-П |
= += -= *= /* %= |
П-Л |
, |
Л-П |
Условные обозначения : Л-П - порядок выполнения слева направо, а П-Л - наоборот. |
II. Операции присваивания
= Присваивает значение, указанное справа, переменной, стоящей слева
Каждая из приводимых ниже операции изменяет переменную, стоящую слева, на величину, находящуюся справа. Мы используем следующие обозначения: П для правой части и Л для левой. + = прибавляет величину П к переменной Л
-= |
вычитает величину П из переменной Л |
*= |
умножает переменную Л на величину П |
/= |
делит переменную Л на величину П |
%= |
выдает остаток от деления переменной Л на величину П |
Пример:
rabbits *= 1.6;то же самое, что rabbits = rabbits * 1.6;
Каждая из этих операций сравнивает значение слева со значением справа. Оператор отношения, состоящий из операции и двух ее операндов, имеет значение 1, если выражение истинно, и значение 0, если выражение ложно.
< |
меньше |
<= |
меньше или равно |
== |
равно |
>= |
больше или равно |
> |
больше |
!= |
не равно |
Обычно логические операции "считают" условные выражения операндами. Операция !имеет один операнд, расположенный справа. Остальные операции имеют два операнда: один слева и один справа.
&& |
Логическое И: результат операции имеет значение "истина", если оба операнда истинны, и "ложь" в противном случае. |
|| |
Логическое ИЛИ: результат операции имеет значение "истина", если один или оба операнда истинны, и "ложь" в противном случае. |
! |
Логическое НЕ: результат имеет значение "истина", если операнд имеет значение "ложь", и наоборот. |
V. Операции над указателями
& |
Операция получения адреса: выдаст адрес переменной, имя которой стоит за обозначением операции: &nurseявляется адресом переменной nurse |
* |
Косвенная адресация: выдает значение, записанное по адресу, на который ссылается указатель: |
nurse = 22;
ptr = &nurse; /* указатель на nurse */
val = *ptr
В результате работы этих операторов переменной valприсваивается значение 22.
VI. Операции над структурами и объединениями
. |
Операция принадлежности (точка) используется совместно с именем структуры (или объединения) для задания элемента этой структуры (иди объединения). Если name является именем структуры, а member- элементом, указанным в структурном шаблоне, то name.memberопределяет этот элемент структуры. Операцию принадлежности можно аналогичным образом применять и к объединениям. |
Пример:
Читать дальше