Функции и структура программы

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. Структура данных «вектор» (динамически расширяемый массив).