Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Programmirovanie_-_1_kurs / Лекции (опорный конспект)

.pdf
Скачиваний:
69
Добавлен:
09.06.2015
Размер:
2.39 Mб
Скачать

7.9.2.1 Пример динамического выделения памяти (2)

81

7.9.3.Операторы new и delete

Оператор new выделяет в области память, необходимую для хранения заданного объекта, и возвращает типизированный указатель

Оператор delete освобождает память, выделенную при помощи оператор new

1) struct MyStruct

 

{

 

int a;

 

int b;

2)

int c;

 

int d;

 

};

 

82

7.9.3.1. Пример динамического выделения памяти (1)

83

7.9.3.1. Пример динамического выделения памяти (2)

84

8.Функции.

8.1.Прототипы функций

Прототип функции – это объявление функции, содержащее только ее заголовочную часть

или

85

8.2.Параметры функции

Параметры функции:

Переменные

Константы

Выражения

86

8.2.1. Передача параметров по значению

Функция работает с временной копией объекта в стековой памяти

Изменение объекта внутри функции не окажет влияния на оригинал объекта вне функции

87

8.2.2. Передача параметров по ссылке (1)

В функцию передается адрес переменной

Изменение объекта внутри функции отразится на его значении вне функции

1) При помощи ссылки

2) При помощи указателя

void test(int &var)

void test(int* var)

{

{

var = var+5;

*var = *var+5;

}

}

void main()

void main()

{

{

int z = 10;

int z = 10;

test(z);

test(&z);

cout << z;

cout << z;

}

}

88

8.2.2. Передача параметров по ссылке (2)

3)

4)

89

8.2.3.Массивы как параметры функций

Массивы всегда передаются в функцию по ссылке: изменение элемента массива внутри функции отразится и за ее пределами

1) void PrintArray(int*, int);

2) void PrintArray(int[], int);

void main()

void main()

{

{

int Array[] = {1,3,5,7,9};

int Array[] = {1,3,5,7,9};

PrintArray(Array, 5);

PrintArray(Array, 5);

getch();

getch();

}

}

void PrintArray(int* A, int n)

void PrintArray(int A[], int n)

{

{

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

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

cout << A[i] << " ";

cout << A[i] << " ";

}

}

90