Функции и структура программы
38. Определение понятия «модульность». Виды модулей. Средства реализации модульности в языке С.
39. Функции языка С и модульность программы. Интерфейс и реализация функции.
40. Правила (синтаксис) определения функции. «Минимальная» функция.
41. Свойства функций. Оператор return.
42. Аргументы функции и результат выполнения функции. Вызов функции. Передача аргументов по значению. Указатели в качестве аргументов функции.
43. Функция main. Две формы функции main.
44. Определение понятия «рекурсия».
Лекции 8-9. Указатели и массивы.
45. Определение понятия «адрес объекта». Операция получения адреса объекта.
46. Размещение в памяти объектов программы. Размеры участков памяти, выделяемые объектам программы.
47. Адреса массивов и функций.
48. Адресная арифметика. Правила адресной арифметики.
49. Указатели. Нетипизированные указатели.
50. Операция доступа (ссылки) по указателю.
51. Указатели и массивы.
52. Определение массива. Способы задания размера массива.
53. Динамические массивы. Освобождение памяти. Функции calloc и free.
Лекция 10. Указатели и массивы (продолжение).
54. Символьные указатели. Различие между определением строк с помощью массивов и с помощью символьных указателей.
55. Массивы указателей (массивы строк).
56. Многомерные прямоугольные массивы.
57. Двумерные массивы неопределенного размера.
58. Многомерные массивы и указатели.
59. Многомерные массивы нерегулярной структуры.
60. Динамические многомерные массивы.
Лекция 11. Указатели и массивы (продолжение).
61. Свойство константности (const) и проблема надежности программ. Объекты программы, к которым применимо свойство const.
62. Константные указатели. Варианты использования const при объявлении указателей.
63. Функция main и аргументы командной строки.
64. Определение понятий rvalue и lvalue. Особенности использования функций, возвращающих lvalue.
65. Указатели на функции. Объявление указателей на функции. Объявление указателя на функцию как типа данных.
66. Общее правило, разбора сложных объявлений
(на примере int (*(*(*fun)())[])();)
Лекция 12. Структуры.
67. Определение понятия «структура». Поля (члены) структуры. Определение структуры и определение переменных типа «структура». Инициализация структур. Определение понятия «составное имя».
68. Структуры в качестве аргументов функций и возвращаемых значений.
69. Указатели на структуры и массивы структур. Доступ к членам структуры по указателю.
70. Определение новых типов с помощью typedef.
71. Битовые поля в структурах.
72. Объединения (union). Отличие объединений от структур.
Лекция 13. Алгоритмы и структуры данных.
73. Сравнение алгоритмов последовательного и двоичного поиска.
74. Структура данных «вектор» (динамически расширяемый массив).