Главная страница

Общие понятия


Скачать 134.7 Kb.
НазваниеОбщие понятия
Дата16.06.2018
Размер134.7 Kb.
Формат файлаdocx
Имя файлаVoprosy_k_ekzame.docx
ТипДокументы
#47047
страница2 из 3
1   2   3

Программирование в С++.


    1. Препроцессор. Файлы заголовков. Макроопределения. Операторы условной компиляции. Pragma – ее назначение. Пространство имен. Организация кода программы.

Препроцессор - программа, подготавливающая код программы на языке C/C++ к компиляции.

Заголовочный файл - это файл, содержимое которого автоматически добавляется препроцессором в исходный текст в том месте, где располагается некоторая директива

Макроопределения – замена какого-то текста в коде другим. Пример: #define str “строка”.

Операторы условной компиляции: #if, #elif, #else, #endif

Если указанное выражение (после #if) имеет ненулевое значение, в записи преобразования сохраняется группа строк, следующая сразу за директивой #if.

Директива #pragma определяется стандартом ANSI С для реализации директив, предоставляющих компилятору различные инструкции.

Пространство имён – это некоторое множество, под которым подразумевается модель, абстрактное хранилище или окружение, созданное для логической группировки уникальных идентификаторов (то есть имён).

Организация кода программы: код должен иметь пробелы, чтобы не писалось всё в одну строчку. У кода должны быть открывающая и закрывающая скобка, если требуются.

    1. Концепция типа данных. Простые типы данных и что о них надо знать.. Оператор определения переменных. Классы памяти.



Void – множество значений этого типа пусто. Требуется обычно для функций, которые не должны ничего возвращать.

Оператор определения переменной выделяет для нее память. Поскольку объект имеет только одну ассоциированную с ним область памяти, такой оператор может встретиться в программе только один раз. Если же переменная, определенная в одном исходном файле, должна быть использована в другом, появляются проблемы.

В си определено несколько классов памяти для переменных и функций. Они изменяют область видимости переменных и функций, определяют время жизни объекта и расположение в памяти. (auto, register, static, extern)

    1. Указатель. Назначение. Виды указателей. Операции над указателем. Определение указателей сложного вида: массивы указателей, указатель на функцию.

Указатель — это та же переменная, только инициализируется она не значением одного из множества типов данных в C++, а адресом, адресом некоторой переменной, которая была объявлена в коде ранее.

Благодаря указателям мы можем обращаться к адресу переменной, а не к самой переменной.

Операции над указателем:

  1. Указателю можно присвоить либо адрес объекта того же типа, либо значение другого указателя.

  2. Так как ссылка не является объектом, то нельзя определить указатель на ссылку, однако можно определить ссылку на указатель.

  3. Операция разыменования указателя представляет выражение в виде *имя_указателя. Эта операция позволяет получить объект по адресу, который хранится в указателе.

  4. Указатель хранит адрес переменной, и по этому адресу мы можем получить значение этой переменной. Но кроме того, указатель, как и любая переменная, сам имеет адрес, по которому он располагается в памяти

  5. К указателям могут применяться операции сравнения >>=<<=,==!=.

T *arr[];

T (*name)(options);

    1. Операторы: присваивание, инкремент, декремент, ветвления, циклы.

Присваивание: «=»

++/*имя переменной*/;  // префиксный инкремент (преинкремент)

/*имя переменной*/++; // постфиксный инкремент (постинкремент)

--/*имя переменной*/;  // префиксный декремент (предекремент)

/*имя переменной*/--; // постфиксный декремент (постдекремент)

Операторы ветвления: if, else

Циклы: for, while, do while.

    1. Функции: определение, виды, применение каждого вида, определение, вызов, прототип, способы обмена данными между функциями. Список формальных параметров. Список фактических параметров. Способы передачи параметров. Механизм передачи параметров.

Функции — это блоки кода, выполняющие определенные операции. Если требуется, функция может определять входные параметры, позволяющие вызывающим объектам передавать ей аргументы. При необходимости функция также может возвращать значение как выходное.

Функции бывают любого типа данных, как и переменные. Функции типа void не возвращают никакого значения.

Вызов: func_name(параметры(если нужно));

Прототип функции – это когда пишется имя_функции(); до ее реализации, а ее описание будет реализовано где-то в коде позднее.

Для обмена данными между функциями в С++ используются следующие способы:

оператор return

глобальные переменные

аппарат формальных и фактических параметров

С помощью оператора return можно передать в вызывающую функцию единственный результат работы функции.

Формальные параметры – это переменные, которые объявляются в заголовке функции при ее определении. Список формальных параметров определяет: количество данных, которое должна получить или вернуть функция, типы этих данных и порядок следования данных. Фактические параметры (аргументы) функции указываются в круглых скобках при вызове функции после ее имени. Они задают конкретные данные, которые передаются в вызываемую функцию, или переменные, в которые вызываемая функция передает результаты своей работы.

Способы передачи параметров: через создание копии (напрямую), через & или через *

    1. Алгоритмическая декомпозиция и ее реализация в С++.

Алгоритмическая декомпозиция — разделение системы, путем разделения алгоритмов, где каждый модуль системы выполняет один из этапов общего процесса.

    1. Структуры данных: одномерный, многомерный массив (статический, динамический), строка char* и ее представление в памяти, struct, enum, union.

Одномерный массив – это именованная последовательность, состоящая из пронумерованных элементов одного типа. Элементы могут быть любого типа данных

 Многомерный массив — это массив, элементы которого сами являются массивами. Например, первый элемент трехмерного массиваявляется двумерным массивом.

Под статический массив память выделяется в стеке, под динамический – в куче.
Размер статического массива должен быть известен до компиляции. Размер динамического массива можно определить во время выполнения программы.
Размер статического массива нельзя изменить во время выполнения программы. Динамический массив может изменять свой размер во время выполнения программы, как в сторону увеличения, так и в сторону уменьшения.
Память, выделенная под статический массив освобождается автоматически после выхода программы из блока, в котором он определён. Память, выделенную под динамический массив следует освобождать принудительно, чтобы избежать её утечек.

Строка представляется в памяти как последовательные элементы, следующие строго друг за другом, при том у строки также на конце будет иметься нуль-терминатор “\0”
Struct – это формат описания структур. Выглядит обычно как struct { поля и методы};

Enum – перечисления - это тип который может содержать значения указанные программистом. Целочисленные именованные константы могут быть определены как члены перечисления. Например:

enum { RED, GREEN, BLUE };, RED == 0, GREEN == 1, BLUE == 2

union – это объединения. Отличается от структуры тем, что в нём все поля указывают на одну и ту же область памяти
1   2   3


написать администратору сайта