- •Простые типы данных и операции над данными. Приведение типов.
- •Void - пустой тип, используется для создания указателей и указания того, что функция не возвращает значений;
- •Выражения сравнения и логические операции.
- •Операторы инкремента и декремента.
- •Составные типы данных: массивы и строки.
- •Составные типы данных: структуры, указатели на структуры.
- •Указатель на тип void и методы работы с ним.
- •Составные типы данных: структуры и объединения.
- •Условные операторы.
- •If (выражение) инструкция1;
- •If (выражение)
- •If (выражение) инструкция1;
- •Циклы, виды циклов. Вложенные циклы. Алгоритмизация циклических процессов.
- •Пользовательские функции, прототипы.
- •14. Указатели и ссылки. Ссылочные переменные.
- •Перегрузка функций.
- •Передача параметров в функцию и вызов функции.
- •1. Вызов функции.
- •2. О аргументах и параметрах
- •Передача указателей и массивов в качестве аргументов функций.
- •Использование указателя для обеспечения вызова по ссылке. Ссылочные параметры.
- •Стек и динамическая память.
- •Простые типы данных и операции над данными. Приведение типов. Константы, квалификатор const.
- •Указатели и динамическое распределение памяти.
Составные типы данных: массивы и строки.
Составными типами данных являются массивы, структуры и объединения. Массивы состоят из компонентов одинакового типа и заданного количества, а структуры и объединения в общем случае включают различные типы именованных компонентов. Компоненты массива называются его элементами, а компоненты структуры и объединения — полями.
Поскольку компонентами блоков могут быть не только простые переменные, но и массивы, структуры и объединения, то возможно описание структур данных большой сложности.
МАССИВЫ
Описание одномерного массива имеет следующий вид:
тип имя[размер]
Описание двумерного массива имеет следующий вид:
тип имя [размер1] [размер2]
пример:
int my_array [3][4];
или
const int n = 3;
const int m = 4;
int my_array [n][m];
Размер -- целое число, хотя в общем случае может быть и произвольным константным выражением, величина которого определена перед началом выполнения программы. Пример:
int v[3];
int a[3][2];
Все элементы индексируются, начиная с нуля. Описан массив v, который является вектором с элементами v[0], v[l] и v[2] типа int.
Массив a можно трактовать как двумерную таблицу (матрицу) с тремя строками и двумя столбцами. Двумерные таблицы хранятся по строкам. Обращения к элементам этой таблицы могут, например, иметь вид а[2] [1]. Имя массива является указателем на нулевой элемент.
Поскольку массивы часто образуются с помощью указателей, следует помнить, что если v -произвольный вектор, то имя его i-го элемента v[i] трактуется как выражение *(v+i), которое также может быть принято за имя элемента.
Имея это в виду, легко понять, что если a, например, массив int a[2][3], то выражение *(*(a+i)+j ) является элементом a[i][j], а выражение **a — элементом a[0][0].
Инициализация одномерных массивов
В С++ предусмотрено несколько способов инициализации массивов:
1. Инициализация при объявлении
a) int my_array [3] = {12, 1245, 18094}; // Важно!! Следующий фрагмент кода не является правильным!!
int our_array [3];
2. инициализация в цикле.
int main(int argc, char* argv[])
{const int n = 5;
int my_array [n];
for (int i = 0; i < n; i++)
{std:: cout << "Enter" << i << "element of the my_array"
<< std::endl;
std::cin >> my_array[i];}
for (int i = 0; i < n; i++)
{std::cout << std::setw(6) << my_array[i];}
Важно!! Работая с массивами, следует иметь в виду серьезное ограничение. В С++ недопустимо копировать один массив в другой с помощью операции присваивания.
Инициализация двумерных массивов
Многомерные массивы инициализируются так же, как и одномерные.
1. Инициализация при объявлении
int my_array [4][3] = { {12, 1245, 18094}, {2, 518, 45}, {45, 67, 45}, {34, 562, 98} };
2. Инициализация в цикле
int main(int argc, char* argv[])
{
const int row = 3;
const int column = 4;
int data [row][column];
for (int i = 0; i < row; i++)
{
for (int j = 0; j < column; j++)
{
std::cin >> data [i][j];
}