- •Основные элементы языка Си
- •Константы
- •Константы целого типа
- •Задание.
- •Беззнаковые и длинные целые константы
- •Константы с плавающей точкой
- •Escape-последовательности
- •Символьные константы
- •Строковые константы
- •Задание.
- •Вопросы.
- •Основные операции языка Си
- •Общие положения
- •Арифметические операции
- •Унарные операции
- •Унарный минус
- •Операция унарный плюс.
- •Задание.
- •Операции инкремента и декремента
- •Задание.
- •Операции отношения и логические операции
- •Задание.
- •Операции присваивания
- •Примеры.
- •Задание.
- •Побитовые операции
- •Задание.
- •Логические побитовые операции
- •Задание.
- •Маскирование
- •Пример.
- •Задание.
- •Пример.
- •Задание.
- •Пример.
- •Пример.
- •Задание.
- •Пример.
- •Примеры.
- •Примеры.
- •Примеры.
- •Пример.
- •Задание.
- •Побочные эффекты. Приоритеты и порядок выполнения операций
- •Пример.
- •Пример.
-
Символьные константы
Символьная константа - это один символ из допустимого набора символов, заключенный в одиночные кавычки (апострофы):
-
'A'
-
'x'
-
'3'
-
'\'
-
'+'
-
'.'
Таблица кодов символов, используемая компьютером, определяет те целые значения, которые будут связаны с каждым символом. Сами же символьные константы не зависят от этой таблицы, поэтому программы на Си не связаны с особенностями конкретного компьютера.
Так как для хранения символа используется один байт, то имеется возможность дополнить эту таблицу расширением для кодов от 128 до 255, куда включают символы национальных алфавитов, псевдографики и другие.
Символьные константы во внутреннем представлении нужно рассматривать как небольшие целые числа.
-
Строковые константы
Строковая константа состоит из последовательности любого числа символов, в том числе и ни одного, заключенных в двойные кавычки:
-
"green"
-
"270-32-3456"
-
""
-
"\19.95"
-
"Строка 1nСтрока 2n"
-
"\verb*! !"
Строковая константа может включать escape-последовательности, имеющие графическое представление и символы, не входящие в основной набор символов (например, кириллицу).
В тех случаях, когда требуется включить в строку backslash () или кавычки, их нужно представить в виде соответствующих escape-последовательностей.
Компилятор автоматически помещает нулевой символ (0) в конец каждой строковой константы. Этот символ не высвечивается, а служит признаком конца строковой константы. Это очень полезно при посимвольной обработке строк и позволяет избежать необходимости задания максимальной длины строки.
Важно заметить, что символьная константа и соответствующая ей строковая константа из одного символа, например, 'A' и "A", не эквивалентны, так как строковая константа содержит два символа. Кроме того, символьная константа эквивалентна некоторому целому числу, а строковая - нет (вообще говоря, строковая константа представляет некоторое значение - это ее адрес в памяти).
-
Задание.
Определить, где и какие допущены ошибки при записи следующих констант:
-
'a' 'n' '' '052' 'a' '/n' 'ф' '8.15 p.m.'
-
"Красное и черное" "Chapter 3 (Cont 'd" "1.3e12"
-
"Он сказал: "Не спите на занятиях"
-
Вопросы.
1. В чем преимущества беззнаковых и длинных констант?
2. Может ли отрицательная восьмеричная константа быть длинной?
3. Какие максимально допустимые значения могут принимать:
a) беззнаковая шестнадцатеричная длинная константа;
б) беззнаковая длинная восьмеричная константа?
4. Какие ошибки допущены при записи следующих констант:
0X1a234 01281 X19FA 0x1AL1 0xAB.12
5. Какая форма записи констант носит название научной нотации?
6. Почему константы с плавающей точкой по своей природе являются приближенными?
-
Основные операции языка Си
-
Общие положения
-
Выражения формируются из отдельных констант, переменных, элементов массивов и вызовов функций с помощью различных операций ( operators). В Си имеется большое число операций, которые можно классифицировать по нескольким признакам.
Элементы данных ( data items), которые участвуют в операции, называются операндами. В зависимости от числа операндов, операции делятся на унарные (с одним операндом), бинарные (с двумя операндами). В Си имеется также операция, в которой используются три операнда ( тернарная). В качестве операндов у большинства операций могут быть выражения.
Другая классификация операций основана на их содержании — арифметические, логические, сравнения и т.п.
Все операции в Си сгруппированы иерархически в соответствии с их приоритетом. Операции с более высоким приоритетом выполняются раньше, чем операции с более низким. Естественный порядок выполнения операций можно изменить с помощью круглых скобок.
Другим важным свойством операций является их ассоциативность, т.е. порядок, в котором будут выполняться последовательно расположенные операции одного приоритета. По этому признаку операции делятся на левоассоциативные, выполняемые в порядке записи (слева направо), и правоассоциативные (справа налево).
Третье свойство, определяющее операции, — это позиция символа операции (оператора) по отношению к операндам в записи операции. Различаются три позиции:
-
префиксная — символ операции стоит перед операндом, на которыйон воздействует;
-
инфиксная — символ операции стоит между операндами;
-
постфиксная — когда символ операции стоит после операнда.