- •Какие типы данных Вы знаете?
- •Как узнать размер типа?
- •Что такое модель памяти? Какие модели памяти Вы знаете?
- •Назовите размеры стандартных типов в используемой Вами модели памяти.
- •Что такое оператор typedef?
- •Для чего предназначена директива препроцессора #define?
- •Что такое сигнатура функции?
- •Что означает директива #include?
- •Что такое #if, #ifdef, #endif? Приведите пример применения.
- •Как можно выделить память?
- •Как можно освободить память?
- •Как проверить, что память выделилась?
- •Как создать массив на стеке? Любой ли массив можно создать на стеке?
- •Что такое "выделение памяти в куче"?
- •Что такое очередь? Как она устроена? Какие операции в ней есть?
- •Что такое куча (пирамида, Heap)?
- •2. "Двусвязный список"
- •3. Задача сортировки n объектов.
- •6. Атд "Очередь с приоритетом"
- •7. Поразрядная сортировка
- •8. Сортировка слиянием
- •9. Сортировка Шелла.
- •10. Список, стек, очередь
- •11. Быстрая сортировка-2
Теорминимум¶
Общие вопросы¶
Какие типы данных Вы знаете?
Численные знаковые целые
int, short, char
Численные знаковые дробные
Float, double, long, long long, long double
Unsigned + type
Char так же может использоваться как символьный тип.
________________________________________________________________________________
Как узнать размер типа?
C помощью функции sizeof (аргумент (например, int, float, char))
________________________________________________________________________________
Что такое модель памяти? Какие модели памяти Вы знаете?
Модель памяти в языке Си — система хранения объектов в языке Си.
Способ хранения объекта в языке Си определяет его время жизни. Объект имеет постоянный адрес и сохраняет своё последнее значение. Запрещается обращаться к объекту, который перестал существовать, при этом, если при работе с объектом использовался указатель, его значение остаётся неопределённым.
Существует три способа хранения объектов: автоматический, статический и динамический.
• Статическое выделение памяти: пространство для объектов создаётся в сегменте данных программы в момент компиляции; время жизни таких объектов совпадает со временем жизни этого кода. Изменение таких объектов ведёт к ошибке времени выполнения.
• Автоматическое выделение памяти: объекты можно хранить в стеке; эта память затем автоматически освобождается и может быть использована снова, после того, как программа выходит из блока, использующего его.
• Динамическое выделение памяти: блоки памяти нужного размера могут запрашиваться во время выполнения программы с помощью библиотечных функций malloc, realloc, calloc и free из области памяти, называемой кучей. Эти блоки освобождаются и могут быть использованы снова после вызова для них функции free.
________________________________________________________________________________
Назовите размеры стандартных типов в используемой Вами модели памяти.
Численные знаковые целые
int - 4
short - 2
char -1
Численные знаковые дробные
float – 4
double – 8
long - 4( в С )
long long – 8
long double - 12( в С ) )
Что такое оператор typedef?
typedef описание
Под описанием подразумевается любое сколь угодно сложное описание данного имени. Но в этом случае имя будет обозначать не имя данного, а имя нового типа, который соответствует типу данного и может быть использован в качестве имени типа в любых других определениях данных. Рассмотрим пример:
typedef double DArray[100];
...
DArray A, B, C;
typedef double DArray[100];
...
DArray A, B, C;
Если бы в первом описании отсутствовало бы ключевое слово typedef, то имя DArray представляло бы имя массива из 100 элементов типа double, для которого бы выделялся соответствующий объем памяти. При наличии typedef компилятор будет воспринимать имя DArray как имя нового типа данных, а именно, типа массива из 100 элементов типа double. Очевидно, никакой памяти при этом не выделяется.
Во втором описании используется имя нового типа DArray. Каждое из определяемых имен A, B и C будет считаться массивом из ста элементов типа double, и для каждого из них будет выделен соответствующий объем памяти.
_______________________________________________________________________________