- •2)Этапы изготовления загрузочного модуля.
- •4)Типы данных.
- •5)Описание типов переменных и именованных констант.
- •6) Классы памяти, область действия, область видимости, время жизни переменных
- •7) Уточнение типа константы (литерала).
- •8)Выражения. Арифметические операции, операции отношения.
- •12) Операция явного приведения типа. Правила преобразования операндов при вычислении выражений. Приоритет операций и порядок их выполнения.
- •Int main(){ // или просто main()
- •14) Форматный ввод-вывод. Функции ввода и вывода;
- •15) Управляющая строка: управляющие символьные константы, поясняющий текст, спецификации преобразования (флаги, ширина, точность, модификаторы, типы преобразования).
- •16) Оператор- выражение. Примеры использования.
- •17) Оператор безусловного перехода. Примеры использования.
- •18) Операторы условного перехода: switch. Примеры использования.
- •19) Операторы условного перехода: if. Примеры использования.
- •20) Операторы цикла: while, do while. Примеры использования.
- •21)Операторы цикла: for. Примеры использования
- •22)Внутреннее представление целых данных.
- •23) Внутреннее представление данных с плавающей точкой
- •24) Другие операторы: break, continue, return. Примеры использования
- •25) Понятие указателя. Виды указателей. Их описание
- •26) Специальные операции, связанные с указателями. Стандартные операции, применимые к указателям.
- •27) Инициализация указателей.
- •28) Одномерные массивы. Описание массивов, их инициализация.
- •29) Связь одномерных массивов с указателями. Динамическое выделение памяти для одномерных массивов.
- •30) Одномерные массивы. Описание массивов, их инициализация.
- •31) Связь двумерных массивов с указателями. Динамическое выделение памяти для двумерных массивов.
- •32) Функции пользователя. Прототипы функций (объявление функций). Структура функции пользователя. Вызов функции. Виды функций.
- •33) Функции пользователя. Способы передачи информации между функциями.
- •34) Функции пользователя. Механизм передачи аргументов в функцию. Передача аргументов функции: передача значений, передача адресов. Возврат результатов из функции.
- •35) Соответствие между фактическими и формальными аргументами. Использование указателей в качестве аргументов. Возврат результатов из функции.
- •36) Понятие ссылки, ее описание. Использование ссылок для передачи аргументов в функцию и обратно.
- •37) Виды функций. Функции с переменным числом аргументов.
- •38) Виды функций. Функции с аргументами, заданными по умолчанию. Inline-функции.
- •39) Виды функций. Рекурсивные функции.
- •40) Виды функций. Перегруженные функции.
- •41) Виды функций. Шаблоны функций.
- •Inline - функция
- •42) Передача аргументов функции main(). Возврат из функции main().
- •43) Описание строк и символов. Функции ввода-вывода символов и строк.
- •44) Действия над строками и символами.
- •46.Использование указателей на строки. Выделение памяти под строку и под массив строк.
- •47.Типы данных, задаваемые пользователем. Оператор typedef. Перечислимый тип
- •48.Структурированный тип данных: структуры, их описание, доступ к полям структуры, вложенные структуры, указатель на структуру, массивы структур
- •49.Разновидности структуры: битовые поля, смеси (объединения). Использование их для построения сложных структур.
- •50.Файлы в с. Способы обмена. Файловый тип. Описание файлов.
- •51.Файлы в с. Потоковый обмен: блоковый, форматный.
- •53.Объекты и классы. Описание классов. Объявление объектов.
- •2 Способа вызова:
- •54Указатель this.
- •55.Конструкторы и деструкторы. Их назначение. Виды конструкторов.
- •61) Наследование. Производный класс. Конструкторы и деструкторы производных классов.
- •62) Множественное наследование.
35) Соответствие между фактическими и формальными аргументами. Использование указателей в качестве аргументов. Возврат результатов из функции.
Соответствие между формальными и фактическими аргументами
Виды формальных аргументов |
Виды фактических аргументов |
переменная |
переменная, константа, выражение |
массив одномерный |
массив одномерный |
массив двумерный |
массив двумерный |
указатель: |
|
- на переменную |
указатель на переменную, адрес переменной (&) |
-на массив одномерный |
указатель на массив одномерный или имя одномерного массива |
- на двумерный массив |
указатель на массив двумерный |
-на функцию |
указатель на функцию или имя функции |
ссылка |
переменная |
За соответствие между формальными и фактическими аргументами должен следить программист.
Если формальные аргументы указатели, то информация передаётся и в обратном направлении, при этом, в качестве фактических аргументов задают адреса переменных для формальных аргументов. При передаче по адресу в стек заносятся копии адресов аргументов, а функция осуществляет доступ к ячейкам памяти по этим адресам и может изменить исходные значения аргументов. При использовании в качестве параметра массива в функцию передается указатель на его первый элемент, иными словами, массив всегда передается по адресу. При этом информация о количестве элементов массива теряется, и следует передавать его размерность через отдельный параметр.
Вызываемые функции могут передавать одно значение в точку вызова, либо через аргументы-указатели или ссылки.
36) Понятие ссылки, ее описание. Использование ссылок для передачи аргументов в функцию и обратно.
Ссылку в С++ можно понимать или как альтернативное имя объекта, или как безопасный вариант указателей. Ссылки имеют три особенности, отличающие их от указателей.
При объявлении ссылка обязательно инициализируется ссылкой на уже существующий объект данного типа.
Ссылка пожизненно указывает на один и тот же адрес.
При обращении к ссылке операция * производится автоматически.
Объявление ссылок очень похоже на объявление указателей, только вместо звёздочки «*» нужно писать амперсанд «&».
37) Виды функций. Функции с переменным числом аргументов.
Функции с переменным количеством аргументов.
Признаком является наличие в списке функции многоточия
int TT(int a, …);
Примером таких функции – scanf() printf().
Функция с переменным количеством аргументов обязательно должна иметь хотя бы один фиксированный аргумент. При передаче в функцию дополнительных переменных, компилятору неизвестно какого типа они будут. Многоточие – указание прекратить контроль типов и приведение аргументов.
Значения фактических аргументов помещаются в стек в соответствии с типом фактических аргументов. Возможность передачи переменного списка аргументов зависит от способа записи аргумента в стек и способа очистки стека от аргумента. В С++ аргументы записываются в стек с конца списка аргумента и стек освобождают вызывающие функции. В паскале стек от аргументов освобождает вызванный модуль. Поэтому в Паскале список аргументов должен быть известен в начале и иметь фиксированную длину.
Функции с переменным количеством аргументов должны иметь способ определения точного количества аргументов при каждом вызове:
1) Пересылка в функцию числа аргументов (один из фиксированных аргументов)
2) Задание признака конца списка аргументов.
Копии данных типа char передаются в стек как int, а данные типа float как double.
Для выбора аргументов из списка переменной длины можно использовать 3 способа:
1) void *p использование указателя пустого типа
2) Использования указателей соответствующих типов
3) Использование стандартных макросов для работы со списком переменной длины, которые описаны в заголовочном файле <stdarg.h>:
va_list – определяет переменную, являющуюся указателем для работы со списком
va_start – устанавливает переменную, описанную как va_list на первый аргумент списка переменной длинны. Этот макрос использует 2 аргумента, второй аргумент определяет имя последнего фиксированного аргумента
va_arg – извлекает очередной элемент списка из стека и переустанавливает указатель на следующий элемент списка. В этом макросе можно задать тип аргумента
va_end – завершает обработку списка аргументов.