- •Алфавит языка Си
- •Идентификаторы (имена) языка Си
- •Ключевые слова
- •Константы (литералы)
- •Комментарии
- •Пример программы на Си
- •Последовательность обработки программы на Си
- •Термины
- •2.1. Концепция типа данных
- •2.2. Базовые типы данных
- •2.2. Атрибуты объектов
- •2.2.1. Класс памяти
- •2.2.2. Область (сфера) действия, связанного с объектом идентификатора
- •2.2.3. Область видимости объекта
- •2.2.4. Продолжительность существования объекта (время жизни)
- •2.2.5. Тип компоновки (связывания)
- •2.3. Объявления, определения и описания в языке Си
- •2.4. Объявления переменных стандартных типов
- •2.5. Преобразования типов
- •Термины
- •3.1. Определение и общая классификация операторов
- •3.2. Последовательно выполняемые операторы
- •3.3. Операции языка Си
- •3.4. Приоритеты и порядок выполнения операций, тип результата выражения
- •Тип результата выражения арифметической бинарной операции
- •Даны X, y (значения вводятся с клавиатуры). Вычислить a, если
- •Термины
- •4.1. Условный оператор
- •4.2. Переключатель
- •4.3. Операторы циклов
- •4.4. Оператор безусловной передачи управления
- •4.5. Оператор возврата из функции
- •4.6. Оператор выхода из цикла или переключателя
- •4.7. Оператор перехода к следующей итерации цикла
- •Термины
- •5.1. Указатели
- •5.2. Ссылки
- •5.3. Массивы
- •5.3.1. Одномерные массивы
- •Int a[100]; // Объявление массива из 100 элементов типа int
- •Инициализация массива
- •Массивы и указатели
- •Динамические массивы
- •5.3.2. Многомерные массивы
- •Инициализация многомерных массивов
- •Динамические многомерные массивы
- •Указатель на массив указателей и указатель на массив
- •Int ** p1; // Указатель на массив указателей
- •Int (*p2)[10]; // Указатель на массив из 10 элементов типа int
- •Термины
- •6.1. Структуры
- •Int X; // Поле структуры
- •Int X; // Поле структуры
- •Int X; // Поле структуры
- •Инициализация структуры
- •Int year, page; // Год издания и число страниц
- •6.2. Объединения
- •6.3. Битовые поля структур и объединений
- •Int a1: 10; // Битовое поле из 10 бит
- •Int a2: 14; // Битовое поле из 14 бит
- •Int :6; // Пропускаем 6 бит
- •6.4. Директива определения типа typedef
- •Термины
- •7.1. Определение, описание и вызов функции
- •7.2. Использование значений параметров по умолчанию
- •7.3. Изменение значений скалярных параметров в функциях
- •7.3.1. Передача параметров в функции по значению
- •7.3.1. Передача параметров в функции по указателю (по ссылке)
- •7.4. Передача в функцию массивов
- •7.4.1. Передача в функцию массивов, не являющихся строками
- •7.4.2. Передача в функцию строк
- •7.5. Функции с переменным количеством параметров
- •7.6. Рекурсивные функции
- •7.7. Подставляемые (inline) функции
- •7.8. Указатели на функции
- •7.10. Шаблоны функций
- •7.11. Возможные параметры функции main
- •Термины
- •8.1. Общие сведения о вводе-выводе
- •8.2. Стандартные потоки ввода-вывода
- •8.3. Функции для вывода в поток stdout
- •8.4. Функции для считывания из потока stdin
- •8.5. Ввод- вывод в файлы Открытие файла
- •Закрытие файла
- •Определение конца файла
- •Функции записи в файл
- •Функции чтения из файла
- •Функции позицирования в файлах
- •Функции для сброса буферов
- •Термины
- •9.1. Стадии и основные команды препроцессорной обработки
- •9.2. Замены в тексте
- •9.3. Макроподстановки
- •9.4. Включение текстов из файлов
- •9.5. Условная компиляция
- •9.6. Директива нумерации строк
- •9.7. Директива обработки ошибок
- •9.8. Директивы # и ##
- •9.9. Заранее определенные препроцессорные идентификаторы
- •9.10. Указания компилятору
- •Термины
Термины
Тип данных определяет:
-
внутреннее представление данных в памяти компьютера;
-
множество значений, которые могут принимать величины этого типа;
-
операции и функции, которые можно применять к величинам этого тина.
Класс памяти - свойство объекта размещенного в памяти (переменной), которое определяет продолжительность существования объекта (время жизни), тип компоновки (связывания) и другие атрибуты.
Блок - последовательность объявлений, определений и операторов, заключенных в фигурные скобки {…}.
Область (сфера) действия - часть исходного кода программы, в которой идентификатор может быть использован для доступа к связанному с ним объекту.
Область видимости объекта - часть исходного кода программы, в которой к объекту можно непосредственно обращаться по его идентификатору.
Продолжительность существования объекта (время жизни) - это интервал времени выполнения программы, в течение которого программный объект (переменная или функция) существует.
Тип компоновки (связывания) определяет соответствие идентификатора конкретному объекту в программе, исходный текст которой размещен в нескольких файлах, т.е. можно ли идентификатор использовать в нескольких файлах проекта или его можно использовать только в одном файле.
Объявление объекта (переменной) - это оператор, позволяющий устанавливать атрибуты объекта, резервировать для него память, связывать объект с идентификатором (именем) или делать известным компилятору идентификатор объекта.
Определение – это разновидность объявления, которое устанавливает атрибуты объекта (переменной), резервирует для него память и связывает объект с идентификатором (именем).
Описание – это разновидность объявления, которое делает известным компилятору идентификатор объекта.
Лекция № 3. Операторы и операции языка Си
3.1. Определение и общая классификация операторов
Дадим следующее определение оператора.
Оператор – это языковая конструкция, представляющая шаг из последовательности действий или описаний (оператор задает законченное описание некоторого действия), оператор всегда завершается «;», за исключение составного оператора или блока. (Элементы заголовка цикла for, после которых ставится «;» оператором считать не будем).
Далее будем использовать именно этот термин в качестве понятия «оператор». Следует отметить, что с термином «оператор» в литературе присутствует некоторая терминологическая путаница. В некоторой, особенно переводной литературе, пол термином «оператор» часто понимают операции, обозначаемые знаками «+», «-», «*», «/», «=», …. из- за английского термина “operator”. Термины «оператор» и «операция» будем разделять.
Под операцией будем понимать некоторое действие, выполняемое над операндами (аргументами операции), результат операции всегда некоторое значение определенного типа, которое может быть использовано справа от операции присваивания (может быть присвоено некоторой переменной).
Операторы разделим на два основных класса:
-
последовательно выполняемые операторы;
-
управляющие конструкции (операторы).
В данной лекции остановимся на последовательно исполняемых операторах.