Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lektsii_po_si.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
71 Кб
Скачать
☆

Массивы.

Массив это структура данных, представленная в виде группы ячеек одного типа, объединенных под одним единым именем. Массивы используются для обработки большого количества однотипных данных.

Одномерный массив — массив, с одним параметром, характеризующим количество элементов одномерного массива. Фактически одномерный массив — это массив, у которого может быть только одна строка, и 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]