
- •Содержание
- •Введение
- •1. Множества символов
- •1.1. Буквы и цифры
- •1.2. Пробельные символы
- •1.3. Знаки пунктуации и специальные символы
- •1.5. Операции
- •2. Константы
- •2.1. Целые константы
- •2.2. Константы с плавающей точкой
- •2.3. Константа-символ
- •2.4. Строковые литералы
- •3. Идентификаторы
- •4. Ключевые слова
- •5. Комментарии
- •6. Лексемы
- •7. Типы данных
- •8. Числа
- •9. Операторы
- •9.1. Оператор "выражение"
- •9.2. Пустой оператор
- •9.3. Составной оператор
- •9.4. Оператор "if"
- •9.5. Оператор "switch"
- •9.6. Операторы "break", "continue", "goto"
- •9.6.1. Оператор "break"
- •9.6.2. Оператор "continue"
- •9.6.3. Оператор "goto"
- •9.7. Оператор "for"
- •9.8. Оператор "while"
- •9.9. Оператор "do while"
- •9.10. Оператор "return"
- •9.11. Оператор "sizeof"
- •10.5. Пробелы
- •10.6. Продолжения строк
- •10.7. Длина строки
- •11. Структура программы
- •12. Псевдокод
- •13. Заголовок файла на языке си
- •14. Заголовок модуля на языке си
- •15. Ссылочная документация
1.5. Операции
Операции - это специальные комбинации символов, специфицирующие действия по
пробразованию различных величин. Компилятор интерпретирует каждую из этих
комбинаций как самостоятельную единицу, называемую лексемой "token".
Ниже представлен список операций. Операции должны использоваться точно так,
как они тут представлены: без пробельных символов между символами в тех
операциях, которые представлены несколькими символами.
! Логическое НЕ
~ Побитовое дополнение
+ Сложение
- Вычитание, арифметическое отрицание
* Умножение
/ Деление
% Остаток
<< Сдвиг влево
>> Сдвиг вправо
< Меньше
<= Меньше или равно
> Больше
>= Больше или равно
== Равно
!= Не равно
& Побитовое И, адрес от
| Побитовое включающее ИЛИ
^ Побитовое исключающее ИЛИ
&& Логическое И
|| Логическое ИЛИ
, Последовательное выполнение (запятая)
?: Операция условного выражения
++ Инкремент
-- Декремент
= Простое присваивание
+= Сложение с присваиванием
-= Вычитание с присваиванием
*= Умножение с присваиванием
/= Деление с присваиванием
%= Остаток с присваиванием
>>= Сдвиг вправо с присваиваиванием
<<= Сдвиг влево с присваиванием
&= Побитовое И с присваиванием
|= Побитовое включающее ИЛИ с присваиванием
^= Побитовое исключающее ИЛИ с присваиванием
Следует отметить, что операция условного выражения ?: является тернарной, а
не двухсимвольной операцией. Формат условного выражения следующий:
<expression>?<expression>:<expression>
2. Константы
Константа - это число, символ или строка символов. Константы используются в
программе как неизменяемые величины. В языке Си различают четыре типа констант:
целые константы, константы с плавающей точкой, константы-символы и строчные
литералы.
2.1. Целые константы
Целая константа - это десятичное, восьмеричное или шестнадцатеричное число,
которое представляет целую величину. Десятичная константа имеет следующий формат
представления:
<digits>
где <digits> - это одна или более десятичных цифр от 0 до 9.
Восьмеричная константа имеет следующий формат представления:
0<odigits>
где <odigits> ~ это одна или более восьмеричных цифр от 0 до 7. Запись ведущего
нуля необходима.
Шестнадцатеричная константа имеет один из следующих форматов представления:
0x<hdigits>
0X<hdigits>
где <hdigits> одна или более шестнадцатеричных цифр.
Шестнадцатеричная цифра может быть цифрой от 0 до 9 или буквой (большой или
малой) от А до F. В представлении константы допускается "смесь" больших и малых
букв. Запись ведущего нуля и следующего за ним символа x или X необходима.
Пробельные символы не допускаются между цифрами целой константы. Ниже
иллюстрируются примеры целых констант.
10 012 132 0x7dB3 0xa
0204 32179 0x84 0x7CB4 0xE
Целые константы всегда специфицируют положительные величины. Если требуется
отрицательные величины, то необходимо сформировать константное выражение из
знака минус и следующей за ним константы. Знак минус рассматривается как
арифметическая операция.
Каждая целая константа специфицируется типом, определяющим ее представление
в памяти и область значений. Десятичные константы могут быть типа int или long.
Восьмеричные и шестнадцатеричные константы в зависимости от размера могут
быть типа int, unsigned int, long или unsigned long. Если константа может быть
представлена как int, она специфицируется типом int. Если ее величина больше,
чем максимальная положительная величина, которая может быть представлена типом
int, но меньше величины, которая представляется в том же самом числе бит как и
int, она задается типом unsigned int. Наконец, константа, величина которой
больше чем максимальная величина, представляемая типом unsigned int, задется
типом long или unsigned long, если это необходимо.
Важность рассмотренных выше правил состоит в том, что восьмеричные и
шестнадцатеричные константы не содержат "знаковых" расширений, когда они
преобразуются к более длинным типам.
Программист может определить для любой целой константы тип long, приписав
букву l или L в конец константы.