
- •1.4.2 Типы и размеры данных в Си
- •1.4.3 Константы
- •1. Целые константы
- •2. Константа действительна
- •3. Символьная константа
- •4. Строчная константа
- •5. Константный выражение
- •Тема 2. Декларации
- •Тема 3. Операторы
- •3.2 Операторы отношений и сравнение на равенство
- •3.5 Операторы присваивания
- •3.5.1 Самый оператор присваивания
- •3.5.2 Другие операторы присваивания Сi
- •3.6 Iнкрементнi и декрементнi операторы
- •Тема 4. Управление
- •4.3 Переключение switch
- •4.4 Цикл While
- •4.5 Цикл for
- •4.6 Операция "," (запятая)
- •4.7 Цикл do - while
- •4.8 Инструкция break
- •4.9 Сontinue
- •4.10 Переходы и метки
- •Тема 5. Указатели и массивы
- •5.1 Указатели
- •5.2 Связь указателей и массивов
- •5.3 Связь между адресной арифметикой и индексированием массивов
- •5.4 Различие между именем массива и указателем (в роли именi массива)
- •5.5 Буквенные указатели
- •5.6 Массивы указателей
- •5.11 Функции проверки свойств символов
- •5.12 Функции преобразования строк
Тема 2. Декларации
Цель: познакомиться с правилами и синтаксисом объявления переменных в языке Си.
В языке Си обязательное объявление всех переменных с их первого использования.
Декларация:
-
спецiфiкуе тип;
-
содержит список переменных этого типа;
-
возможна инициализация (initial);
-
Возможен квалiфiкатор const.
Квалiфiкатор const сообщает о том, что значение переменной не может быть изменено в этой программе.
Пример 1:
int up, down, step;
char c, str [101];
Пример 2: / * эквивалент примера 1 * /
int up; / * верхняя граница * /
int down; / * нижняя граница * /
int step; / * шаг * /
...
char str [101]; / * строка * /
Инициализация
Пример 3:
char newline = '\ n';
int i = 0;
int board = MAX +1;
float eps = 1.0e-3;
char error [] = "ошибка";
Выделение памяти для error :
Компилятор автоматически добавляет в декларацию количество элементов: error [7]
Инструкция декларации выделяет память для переменной.
Пример 4:
/ * Инициализация массива * /
int kdm [] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
Квалiфiкатор const
Пример 5:
const float pi = 3.1415;
const int kdm [] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
недопустимы теперь:
pi = 3.14
kdm
[i] = kdm [i] +1;
Тема 3. Операторы
Цель: познакомиться с операторами языка Си, их свойствами.
3.1 Арифметические операторы
3.1.1 Бинарные +, -, *, /,%
3.1.2 Унарнi +, -
3.2 Операторы отношений и сравнение на равенство
3.3 Логические операторы
3.3.1 Бинарные
3.3.2 Унарнi
3.4 Побитовые операторы
3.4.1 Побитовое i (&)
3.4.2 Побитовое или (|)
3.4.3 Побитовое или, что исключает (/ \)
3.4.4 Сдвиг влево <<
3.4.5 Сдвиг вправо>>
3.5 Операторы присваивания
3.5.1 Простейшие операторы присваивания
3.5.2 Другие операторы присваивания
3.6 Iнкрементнi и декрементнi операторы
3.7 Оператор? (Условное выражение)
3.8 Преобразование типов
3.8.1 Для бинарных операторов
3.8.2 Для присваивания
3.8.3 При вызове функций
3.8.4 Явное задание приведения
3.9 Приоритеты и ассоцiативнiсть операторов
В языке Си под термином "оператор" понимают элементарные операции (+, -, <,>, =). В других языках программирования под этим термином понимают крупные конструкции языка (цикла, условия). В Сi такие конструкции называются "инструкциями".
3.1 Арифметические операторы
Особенности:
-
арнiсть (операторов): если 1 операнд - унарный, 2 - бинарный;
-
приоритет (правила, определяющие порядок вычисления значения выражения, содержащей операторы)
-
асоцiативнiсть (порядок вычисления значения выражений, содержащих операторы с одинаковым приоритетом)
Различают левой- и правоасоциативни операторы.
Арифметические - левоасоциативнi.
Позиция - место оператора по отношению к своим операндов.
Пример 1:
3 +2 - iнфиксна позиция; + 3 2 - префiксна позиция; 3 февраля + - постфiксна позиция.
3.1.1 Бинарные +, -, *, /,%
оператор |
тип операндiв |
|
цілий |
дiйсний |
|
+ - * / % |
додавання вiднiмання множення розподіл нацiло залишок від розподілу |
додавання вiднiмання множення розподіл - |
Приоритет prio (+) = prio (-) prio (*) = prio (/) prio (*, /,%)> prio (+, -)
3.1.2 Унарнi +, -
-
Наивысший приоритет;
-
Префiксна позиция;
-
Имеют один операнд.