Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОтветыЭкзамОАиП1сем.docx
Скачиваний:
10
Добавлен:
30.01.2023
Размер:
2.09 Mб
Скачать

Int main(void)

{ int max (int n1, int n2) }

Вся информация, имевшаяся в прототипе функции, повторяется в её определении, поэтому если функция определена до её первого вызова, то отдельно прототип указывать не обязательно.

Формальные параметры задаются в прототипе и в определении функции. Они задаются уникальными именами и внутри функции доступны как локальные переменные.

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

3. Вызов функций

адресное-выражение ([список-выражений])

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

void ff()

{ int i = 10; cout<<"Функция - i="<<i<<endl; }

void main() { int i = 1; ff(); cout<<"i="<<i<<endl; }

Пример. Формирование динамической матрицы 5х5 из случайных чисел.

40. Вызов и использование функции.

адресное-выражение ([список-выражений])

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

void ff()

{ int i = 10;

cout<<"Функция - i="<<i<<endl;

}

void main()

{ int i = 1;

ff();

cout<<"i="<<i<<endl;

}

41. Способы передачи аргументов в функции. Использование указателей.

Передача массива по указателю. Вызов функции прежний.

int sum(int *x)

{ int res = 0;

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

res += *x++; // можно res += x[i]

return res;

}

int main()

{ int mas[3][5], i, j;

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

{ for(j = 0; j < 5; j++)

{ mas[i][j] = i * j;

cout << mas[i][j] << ' ';

}

cout<< endl;

}

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

cout << "result=" << sum(mas[i]) << endl;

}

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

Если в качестве параметра функции используется обозначение массива, то на самом деле в функцию передается адрес первого элемента массива.

В функцию можно передавать массивы. Имя массива - это указатель, копия указателя на начало массива передается в функцию.

Пример. Определить максимальные элементы строк матрицы B(2, 4)

Элементы массива могут быть изменены внутри функции.

43. Указатели как формальные параметры и как результат функции.

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

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

Если фактический параметр должен быть изменен в подпрограмме-функции, то формальный параметр надо определить как указатель.

Тогда фактический параметр должен быть передан с использованием операции &.

Пример, в котором происходит обмен значениями переменных

void swap(int *, int *); // прототип