Программирование и основы алгоритмизации. Макаров В.Л. - 63 стр.

UptoLike

Составители: 

63
Для этого заголовок функции myltiply( ) должен иметь следующий вид:
int multiply(int x, const int &y).
Указание ключевого слова const в прототипе функции не обязательно. При
таком описании функции аргумент у не будет копироваться при вызове функ-
ции, но внутри функции изменить значение у будет невозможно. На любую по-
пытку изменить аргумент у компилятор выдаст сообщение об ошибке.
Альтернативной формой передачи параметра по ссылке является использо
-
вание указателей. При этом адрес переменной передается в функцию не опера-
цией адресации (&), а операцией косвенной адресации (*). В списке параметров
подобной функции перед именем переменной указывается символ *, свидетель-
ствуя о том, что передается не сама переменная, а указатель на нее. В теле функ-
ции тоже перед именем параметра ставится символ
разыменовывания *, чтобы
получить доступ через указатель к самой переменной. А при вызове функции в
нее в качестве аргумента должна передаваться не сама переменная, а ее адрес,
полученный с помощью операции адресации &.
Приведем пример рассмотренной ранее функции myltiply( ) на рис. 9.4, но с
передачей параметра по ссылке с помощью указателя:
#include<iostream.h>
#include <conio.h>
int multiply(int ,int *); // прототип
функции
main()
{
clrscr(); //очистка экрана
int x1,y1,z;
cout<<"\nВведите первый сомножитель=";
cin>>x1;
cout<<"\nВведите второй сомножитель=";
cin>>y1;
z=myltip(x1, &y1); // вызов функции
cout<<"\nРезультат ="<< z;
cout<<"\n------------------------------\n";
cout<<"\nНажмите любую клавишу ...";
getch();
}
int multip(int x, int *y) // заголовок функции
{
return *y*x; // изменение значения параметра
}
Рис. 9.5