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

31) Связь двумерных массивов с указателями. Динамическое выделение памяти для двумерных массивов.

Двухмерные массивы

Тип имя [количество элементов 1 размерности][количество элементов 2 размерности] [={{значение1,…},{значение 1,…},…}];

Указатели и двумерные массивы

Имя двухмерного массива является указателем-константой на массив указателей-констант на нулевые элементы строк

int b[3][2];

b←

b↔&b[0]

b[0]↔&b[0][0]

b[1]↔&b[1][0]

b[2]↔&b[2][0]

Обращение к элементам

b[i][j] - ↔ *(b[i]+j)или *(*(b+i)+j)

B[i][j]*(*(B+i)+j) //B – адрес нулевого элемента в массиве указателей на строки

//B+i – адрес указателя на i-ю строку

//*(B+i) – адрес нулевого элемента i-й строки

//*(B+i)+j – адрес j-го элемента в i-й строке

//*(*(B+i)+j) – значение j-го элемента в i-й строке

B[i] – адрес нулевого элемента i-той строки

*(B[i]+j) – значение В[i][j]

Динамическое выделение памяти под матрицу

int **B;

//выделяем память под массив указателей на строки

B=new int *[n];

//выделение памяти под строки

for (i=0;i<n;i++)

B[i]=new int [m];

//Удаление памяти

for (i=0;i<n;i++)

delete [] B[i];

delete [] B;

32) Функции пользователя. Прототипы функций (объявление функций). Структура функции пользователя. Вызов функции. Виды функций.

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

Описание функций (объявление) называется прототипом функции и имеет вид: [тип] имя_функции ([список аргументов]);

Прототипы функции обычно записываются вначале программы, либо выделены в отдельный h-файл. Список аргументов в прототипе можно задавать без имён переменных.

С функцией связано объявление (описание) и определение (задание).

Формат функции (определение):

[тип] имя_функции ([список аргументов]) // тип может отсутствовать

{ // описание локальных переменных

// операторы; причем может быть любое количество операторов return }

где: тип функции задаёт тип возвращаемого значения, которое передаётся с помощью оператора return, если тип функции отсутствует, то считается что функция возвращает целочисленное значение (тип int). Если функция не возвращает в точку вызова значения, то её тип должен быть void;

имя_функции является указателем на функцию, причём является указателем константой, значение этого указателя – адрес входа в функцию;

список аргументов: определяет формальные аргументы (параметры), которым должны быть переданы конкретные значения при обращении к функции. Список представляет собой перечень имён формальных аргументов с указанием их типа, отделяются друг от друга запятой. Если список аргументов функции отсутствует, то ставятся круглые скобки, в которых можно записать void.

Для выполнения функции необходимо ее вызвать. Вызов функции может быть сделан в выражении или отдельном операторе, записывается имя функции и в скобках перечисляются фактические аргументы.

Виды функций в С++:

  1. Встроенная функция (inline)

  2. Функции с аргументами заданными по умолчанию

  3. Функции с переменным количеством аргументов

  4. Рекурсивные функции

  5. Перегруженные функции

  6. Шаблоны функции

  7. Передача аргументов в функцию main() и возврат значения из неё

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