- •4.Элементы языка Си. Символы, лексемы, знаки операций.
- •1.Символы языка
- •2.Лексемы
- •5.Элементы языка Си. Константы, идентификаторы, ключевые слова, комментарии.
- •6.Типы данных.
- •7.1,Объявление переменных. Массивы.
- •7.2,Объявление переменных. Массивы.
- •9.1,Операции и выражения. Арифметические операции
- •11. Логические операции и операции отношения. Операции присваивания
- •12.Условное выражение. Операция Sizeof. Операции приведения типов type.
- •13.1,Преобразование типов в выражения. Правила приведения типов.
- •13.2,Преобразование типов в выражения. Правила приведения типов.
- •14.1, Управление вычислительными процессами. Конструкции if-else, else-if.
- •14.2, Управление вычислительными процессами. Конструкции if-else, else-if.
- •15.Переключатель
- •16. Операторы цикла.
- •17.1.Инструкции break, continue. Инструкция goto и метки. Пустой оператор
- •17.2.Инструкции break, continue. Инструкция goto и метки. Пустой оператор
- •Пустой оператор
- •18.1.Классы памяти.
- •18.2.Классы памяти.
- •19.1. Функции. Определение ф-ций.
- •Определение ф-ции
- •19.2. Функции. Определение ф-ций.
- •21. Структура программы на языке Си
- •22. Директивы #define и # undef.
- •24,Директивы препроцессора. Препроцессорные операции.
- •Препроцессорные операции
- •25.1, Указатели.Операции &,*.
- •25.2, Указатели.Операции &,*.
- •26. Указатель на неопределенный тип.
- •27.1,Выражения и операции с указателями. Присваивание указателей
- •Сравнение указателей
- •27.2,Выражения и операции с указателями. Применение арифметических операций к указателям
- •29. Массивы и указатели.
- •30.Операции с указателями на массив. Адресная арифметика.
- •32.Массивы указателей. Указатели на указатели.
- •33.Массивы указателей на строки.
- •34.1,Передача параметров из операционной среды.
- •34.2,Передача параметров из операционной среды.
- •36.1,Динамичное распределение памяти.
- •36.2,Динамичное распределение памяти.
- •37,1,Структуры. Операции над структурами
- •37,2,Структуры. Операции над структурами
- •38.Массив структур. Правило выравнивания структурных переменных в памяти
- •39.1,Переименование типов. Средство typedef.
- •39.2,Переименование типов. Средство typedef.
- •40.Поля битов.
- •41.1,Объединения
- •41.2,Объединения
- •42.Ввод, вывод потока.
- •43.Доступ к файлам через поток ввода/вывода.Открытие потока.Закрытие потока.
- •44.1,Доступ к файлам через поток ввода/вывода.Функция потокового ввода вывода.
- •44.2,Доступ к файлам через поток ввода/вывода.Функция потокового ввода вывода.
- •45,Последовательный и прямой доступ в поток.
Пустой оператор
состоит из ; При выполнении его ничего не происходит. Используется в операторах do, for, while, if в случаях, когда тело оператора не требуется, но оно должно быть.
For(…){
For(…){
while(…){
if(…) go t end;
}}}
end:; }
18.1.Классы памяти.
Класс памяти выделяется для переменных определенным спецификатором класса памяти, определяемых под переменные. Класс памяти определяет время жизни и область действия объекта, связанные с понятием блока программы. Существует два типа блока: составной оператор и определители ф-ции, состоящие из составного оператора, включающего тело ф-ции + заголовок ф-ции. Блоки могут включать в себя составные операторы, но не могут включать определение ф-ции , внутренние блоки наз вложенными, а внешние- объемлющими.
Время жизни – это интервал времени, в течение к-рого програмный объект существует. Время жизни может быть глобальным или локальным. Объект с глобальным временем жизни существует и имеет определенное значение в течение всего времени выполнения программы. Переменной с локальным временем жизни каждый раз выделяется новая ячейка памяти, когда управление передается блоку, к-рым она определяется. Когда управление возвращается из блока, переменная теряет свое значение.
Переменная с классом auto явл локальной для каждого вызова блока и теряет свое значение при выходе из блока. Она должна явно инициализироваться, иначе ее содержимое имеет неопределенное значение.
Класс памяти static указывает на то, что переменная явл локализованой в блоке, но сохраняет свое значение при повторном входе в блок.
Класс памяти extern означает, что переменная сохраняет свое значение в течение всего времени выполнения программы.
Переменная класса памяти register хранится, если это возможно , в регистре, для повышения скорости выполнения программы. Время жизни для переменной этого класса такое же как для auto. Регистровая память может быть назначена только для типов int и указателей ,имеющих тот же размер, что и int. Если переменная объявлена с классом register , а свободных не оказалось, то ей назначают класс auto.Объкты класса auto и register имеют локальное время жизни, а объекты классов static и extern – гловальное, но точный смысл
18.2.Классы памяти.
каждого из идентефикаторов зависит от того, а каком уровне, внутреннем или внешнем, объявлена переменная и от того, явл объект ф-цией или переменной.
19.1. Функции. Определение ф-ций.
Любая программа состоит только из ф-ций. Ф-ция – это независимая совокупность объявлений и инструкций, приводящая к решению определенной задачи. Каждая ф-ция имеет имя, для вызова ф-ции. В каждой программе есть только одна ф-ция именем main, с к-рой начинается выполнение программы. При вызове ф-ции ей могут быть переданы параметры посредством переменных. Ф-ция может возвращать значение, это значение- оновной результат ф-ции.
С использованием ф-ции в Си связаны:
определение ф-ции
объявление ф-ции
вызов ф-ции