Массивы.
Массив это структура данных, представленная в виде группы ячеек одного типа, объединенных под одним единым именем. Массивы используются для обработки большого количества однотипных данных.
Одномерный массив — массив, с одним параметром, характеризующим количество элементов одномерного массива. Фактически одномерный массив — это массив, у которого может быть только одна строка, и n-е количество столбцов.
//синтаксис объявления одномерного массива в С++:
/*тип данных*/ /*имя одномерного массива*/[/*размерность одномерного массива*/];
//пример объявления одномерного массива, изображенного на рисунке 1:
int a[16];
//ещё один способ объявления одномерных массивов
int mas[10], a[16];
Пример
#include <stdio.h> void main() {
int a[]={5, 4, 3, 2, 1}; // массив a содержит 5 элементов
printf("%d %d %d %d %d\n",a[0], a[1], a[2], a[3], a[4]);
getchar(); }
Результат выполнения:
5 4 3 2 1
Двумерный массив — это обычная таблица, со строками и столбцами. Фактически двумерный массив — это одномерный массив одномерных массивов.
Структура двумерного массива, с именем a, размером m на n:
// синтаксис объявления двумерного массива
/*тип данных*/ /*имя массива*/[/*количество строк*/][/*количество столбцов*/];
// пример объявление двумерного массива:
int a[5][3];
Пример
#include <stdio.h> void main() {
int a[2][3]={1, 2, 3, 4, 5, 6};
printf("%d %d %d\n", a[0][0], a[0][1], a[0][2]);
printf("%d %d %d\n", a[1][0], a[1][1], a[1][2]);
getchar(); }
Результат выполнения
1 2 3
4 5 6
Динамический массив.
Динамическое выделение памяти необходимо для эффективного использования памяти компьютера.
В С операции new и delete предназначены для динамического распределения памяти компьютера. Операция new выделяет память из области свободной памяти, а операция delete высвобождает выделенную память. Выделяемая память, после её использования должна высвобождаться, поэтому операции new и delete используются парами. Даже если не высвобождать память явно, то она освободится ресурсами ОС по завершению работы программы. Рекомендую все-таки не забывать про операцию delete.
// пример использования операции new
int *ptrvalue = new int;
//где ptrvalue – указатель на выделенный участок памяти типа int
//new – операция выделения свободной памяти под создаваемый объект.
Операция new создает объект заданного типа, выделяет ему память и возвращает указатель правильного типа на данный участок памяти. Если память невозможно выделить, например, в случае отсутствия свободных участков, то возвращается нулевой указатель, то есть указатель вернет значение 0. Выделение памяти возможно под любой тип данных: int, float,double, char и т. д.
// пример использования операции delete:
delete ptrvalue;
// где ptrvalue – указатель на выделенный участок памяти типа int
// delete – операция высвобождения памяти
Пример:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int *ptrvalue = new int; // динамическое выделение памяти под объект типа int
*ptrvalue = 9; // инициализация объекта через указатель
//int *ptrvalue = new int (9); инициализация может выполнятся сразу при объявлении динамического объекта
cout << "ptrvalue = " << *ptrvalue << endl;
delete ptrvalue; // высвобождение памяти
system("pause");
return 0;
}
Результат выполнения:
ptrvalue = 9
