- •Основные математические библиотечные функции.
- •Библиотечные функции генерации случайных чисел.
- •Объявление функций (прототипы функций). Описание функций. Вызов функций. Понятие формальных и фактических параметров функции.
- •Способы передачи параметров в функцию. Возвращение результатов.
- •Передача в функцию одномерных массивов.
- •Передача в функцию двумерных массивов.
- •Понятие рекурсивной функции. Пример рекурсивной функции.
- •Перегрузка функций.
- •Шаблоны функций.
- •Понятие структуры. Объявление и инициализация структур.
- •Файлы и их назначение. Логическое и физическое имя файла.
- •Открытие файлов.
- •Способы доступа к файлам.
- •Спецификаторы класса памяти.
- •Операция :: .
- •Функции препроцессора. Основные директивы препроцессора
- •Директива include. Ее назначение. Правила использования.
- •Директива #define. Ее назначение. Символьные константы и макросы. Правила использования директивы.
- •Директива #undef.
- •Условная компиляция файлов.
- •Управление выполнением директив.
- •Понятие динамической структуры. Виды динамических структур. Их отличие друг от друга.
- •Организация списка на основе массива.
- •Возможная структура элемента связного списка.
- •Однонаправленные и двунаправленные связные списки.
- •Добавление узлов в разные части связного списка.
- •Удаление узлов из разных частей связного списка.
- •Поиск элемента связного списка, содержащего указанную пользователем информацию.
-
Спецификаторы класса памяти.
-
В С++ имеются 4 спецификации класса памяти
-
auto
register
extern
static
-
Спецификации auto и register используют
ся для объявлений переменных с локальным временем жизни
Такие переменные создаются в блоке, ограниченным фигурными скобками в момент их объявления
и исчезают при выходе из блока
Спецификация auto устанавливается по умолчанию
auto float p;
-
Спецификация register дает указания компилятору сохранять переменную в высокоскоростном регистре, если ее предполагается использовать часто. Это совет компилятору, не всегда выполним
-
Auto является средством экономии памяти, поскольку локальные переменные создаются в ограниченном пространстве блока
и уничтожаются при выходе из него
-
Extern используется для обьявления переменной с глобальным временем жизни.
Память для них выделяется в момент обьявления в программе и сохраняется до ее окончания.
Обьявления глобальных переменных размещаются вне описания какой либо функции.
На них может ссылаться любая функция, обьявленная после их обьявления.
Устанавливается extern по умолчанию.
Внутри блока предпочтение отдается местной локальной переменной.
То же правило предпочтения работает во вложенных блоках, предпочтение отдается
локальной переменной внутреннего блока.
-
Static
Локальные переменные с этим атрибутом доступны только в том блоке, где они обьявлены, но
живут они в памяти компьютера до конца исполнения программы.
-
Операция :: .
-
В С++ имеется операция :: , которая позволяет внутри блока или внутри функции осуществлять доступ к глобальной
-
переменной, при наличии у нее локальной тезки.
int i=::i;
Позволяет локальной переменной i присвоить значение глобальной переменной i.
Примеры:
#include<iostream>
using namespace std;
int var=111; //Глобальная переменная
void f1(void)
{
int var=222; //Локальная переменная функции f1
cout<<"Значение var в f1() = "<<var<<endl; //222, т.к ЛП скрывает глобальную
cout<<"Значение var в f1() = " <<::var<<endl; //111, т.к ГП становится видимой
}
void f2(void)
{
static int count; //ЛСП сохраняет значение между вызовами и инициализируется один раз нулем
cout<<"Значение count в f2 = "<<count++<<endl;
cout<<var<<endl;
var *=3; //
}
main()
{
cout<<"Значение var = "<<var<<endl;
f1();
cout<<"После вызова f1() var = "<<var<<endl;
f2();
cout<<"После вызова f2() var = "<<var<<endl;
return 0;
}
-
Функции препроцессора. Основные директивы препроцессора
-
Директива препроцессора
-
1) включить компилируемый файл
-
2) определить символьные const, макросы
-
3) задать режим условной компиляции
-
-
Наиболее употребляемые директивы:
-
include
-
define
-
undef
-
ifdef (ifndef)
-
-
-
Директива include. Ее назначение. Правила использования.
Применяется для включения копии указанного в директиве файла в то место, где находиться эт о директива. Существуют две формы записи директивы include
- include <имя файла>
- include “имя_файла”
Различие заключается в методе поиска препроцессором включаемого файла. Если имя файл заключено в < > (iostream), то последовательность поиска препроцессором файла в каталогах определяется используемой системой программирования. Если имя файла в “ “, то препроцессор ищет сначала в том каталоге, где находиться компилируемый файл, а затем продолжает поиск тем же способом, что и при < > скобках в списках каталогов системы программирования.